Microsoft Graph 范围 v2 oauth

Microsoft Graph scopes v2 oauth

我正在尝试构建一个简单的 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.

如有任何帮助,我们将不胜感激!

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