Доступ к социальным API Office 365 запрещен

Я работаю с Office 365 и API-интерфейсами Sharepoint 2013. Я использую Azure AD для аутентификации пользователя и настроил тестовое приложение внутри AAD, в котором все делегированные разрешения включены на вкладке настройки для Sharepoint 2013. Я делаю эти вызовы из собственного приложения для Android и смог успешно выполнить аутентифицироваться с помощью Microsoft ADAL (ActiveDirectoryAuthenticationLibrary), используя этот URL-адрес авторизации oauth: https://login.windows.net/ / oauth2 / токен? api-version = 1.0. Затем я захожу на свой сайт с тестовой точкой общего доступа и возвращаю список с https: //// _ api / Web / Lists? GetByTitle ('') / Items, используя токен Oauth, который я получил обратно после использования ADAL. Все это работает хорошо, но когда я пытаюсь получить доступ к социальным API с тем же процессом токена, я получаю сообщение 401 Unauthorized. URL-адрес, который я использую для получения информации о текущих пользователях: https: ////_api/social.following/my. Что я делаю не так, что приводит к сбою API списков и API социальных сетей? Любая помощь приветствуется!


person user3768760    schedule 11.09.2014    source источник


Ответы (1)


Вы запрашиваете новый токен для ресурса перед вызовом этого ресурса?

Библиотека ADAL должна получить новый токен доступа для каждого запрашиваемого ресурса. Наша библиотека автоматически выполняет погашение токена обновления для нового токена доступа, если вы вызываете acquToken () с помощью новой конечной точки ресурса. На это есть намеки в документации по API.

Пример:

mAuthContext = new AuthenticationContext(ToDoActivity.this, Constants.AUTHORITY_URL,
                false);
mAuthContext.acquireToken(activity, resource, clientId, redirectUri, loginHint, prompt, extraQueryParameters, callback)

//do work with the token
// now get token for new_resource

mAuthContext.acquireToken(activity, new_resource, clientId, redirectUri, loginHint, prompt, extraQueryParameters, callback)

Вы можете использовать здесь пример, который поможет вам увидеть, как это можно сделать: https://github.com/AzureADSamples/NativeClient-Android

person Brandon    schedule 14.09.2014
comment
Я не меняю свой ресурс, поэтому нет необходимости получать новый токен. Я пытаюсь получить доступ к социальному API для того же ресурса и получаю 401 несанкционированный доступ. Я обнаружил информацию, что на данный момент социальные API не поддерживаются в нативных мобильных приложениях. Ссылка на эту информацию находится здесь: http://stackoverflow.com/questions/23272399/office365-sharepoint-social-feed-aad-authorization. - person user3768760; 01.10.2014