我正在尝试构建一个简单的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.
对此有任何帮助将不胜感激!
答案 0 :(得分:11)
确定。问题是您要包括Outlook(https://graph.microsoft.com/user.read
范围)和图形(https://graph.microsoft.com/contacts.read
范围)的范围。不幸的是,Azure的授权端点不支持这样的混合范围。您可以删除Outlook范围(假设您不需要它),或将其更改为等效的图形:{{1}}(如果您需要访问登录用户的个人联系人)。