2014-09-11 5 views
0

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

ответ

0

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

Библиотека ADAL должна приобрести новый токен доступа для каждого запрашиваемого ресурса. Наша библиотека автоматически выполняет погашение токена обновления для нового токена доступа, если вы вызываете приобретатьToken() с использованием новой конечной точки ресурса. Это намечено в документации 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

+0

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