Office 365社交API访问被拒绝

时间:2014-09-11 15:17:45

标签: android sharepoint-2013 office365 adal

我正在使用Office 365和Sharepoint 2013 API。我正在使用Azure AD对用户进行身份验证,并在AAD中设置了一个测试应用程序,其中所有委派权限都设置为在Sharepoint 2013的配置选项卡中启用。我正在从本机Android应用程序进行这些调用并且能够成功使用此oauth权限url:https://login.windows.net/ / oauth2 / token?api-version = 1.0,使用Microsoft的ADAL(ActiveDirectoryAuthenticationLibrary)进行身份验证。然后,我访问我的测试共享点站点并使用https://// _ api / Web / Lists?getByTitle('')/ Items返回一个列表,该列表使用我从后面使用ADAL收到的Oauth令牌。这一切都运行良好,但当我尝试使用相同的令牌过程访问社交API时,我得到401 Unauthorized。我用来获取当前用户信息的网址是:https:////_api/social.following/my。我做错了什么导致列表api工作和社交api失败?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

在调用该资源之前,您是否在为资源请求新令牌?

ADAL库必须为您请求的每个资源获取新的Access令牌。如果您使用新资源端点调用 acquireToken(),我们的库会自动为新的Access令牌兑换刷新令牌。这在API docuemtation中有所暗示。

示例:

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