Microsoft Graph范围v2 oauth

时间:2016-07-01 16:42:29

标签: microsoft-graph

我正在尝试构建一个简单的Ruby应用程序,它可以连接到Microsoft Graph API并获取有关用户的基本信息,例如经理或直接下属。

我已经按照0365教程进行操作,我有一个能够获取用户邮件的工作应用程序。但是,当我尝试使用会话令牌查询图形api时,我收到一个错误:

response.body
=> "{\r\n  \"error\": {\r\n    \"code\": \"InvalidAuthenticationToken\",\r\n    \"message\": \"Access token validation failure.\",\r\n    \"innerError\": {\r\n      \"request-id\": \"18cbc6be-5254-400c-9780-7427376587fb\",\r\n      \"date\": \"2016-06-30T22:21:55\"\r\n    }\r\n  }\r\n}" 

我正在使用范围

SCOPES = [ 'openid', 'profile', 'https://outlook.office.com/contacts.read', 'offline_access' ] 

我刚刚被建议包含范围“https://graph.microsoft.com/user.read”,但是当我将其添加到应用程序时,我甚至在点击用户登录页面之前会收到以下错误:

AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope openid profile offline_access https://graph.microsoft.com/user.read is not valid.

对此有任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:11)

确定。问题是您要包括Outlook(https://graph.microsoft.com/user.read范围)和图形(https://graph.microsoft.com/contacts.read范围)的范围。不幸的是,Azure的授权端点不支持这样的混合范围。您可以删除Outlook范围(假设您不需要它),或将其更改为等效的图形:{{1}}(如果您需要访问登录用户的个人联系人)。