-2

我正在通过 ouath2 在我们的 Web 应用程序中对 Outlook (office365) 用户进行身份验证。主要是我遵循了这个例子:https ://dev.outlook.com/RestGettingStarted/Tutorial/python 。我设法得到了回应access_token;同样来自上面链接的文章指出,响应应该包含token_id哪个反过来将包含编码的用户电子邮件。在我的情况下,访问令牌的响应是这样的:

{
u'token_type': u'Bearer', 
u'scope': u'https://outlook.office.com/mail.readwrite', 
u'access_token': u'EwB4Aul3BAA...ZQE=', 
u'expires_in': u'3600'
}

显然token_id这里没有。我已经用谷歌搜索了一些 Office365 API,它允许使用access_token但没有运气来获取用户信息(和电子邮件)。

有什么建议么?

4

2 回答 2

0

所以,答案很简单:我忘记openid在请求访问令牌之前添加到范围。

于 2015-08-13T08:02:48.100 回答
0

我遵循了https://dev.outlook.com/RestGettingStarted/Tutorial/php上的 PHP 示例

但是,即使使用openid范围,我也无法获取登录用户的电子邮件地址。

经过大约 24 小时的搜索和测试,我最终发现我需要添加profile作为范围。我只是通过检查请求标头通过 OAuth 沙箱https://oauthplay.azurewebsites.net/发现了这一点。

希望这可以帮助某人。

这确实应该得到更好的记录。

于 2016-06-21T15:18:40.650 回答