我正在通过ouath2在我们的网络应用中为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
这里显然没有access_token
。我已经搜索了一些Office365 API,它允许使用X-Mod-H264-Streaming: version=2.2.9
获取用户信息(和电子邮件),但没有运气。
有什么建议吗?
答案 0 :(得分:0)
所以,答案非常简单:在请求访问令牌之前,我忘了向范围添加openid
。
答案 1 :(得分:0)
我在https://dev.outlook.com/RestGettingStarted/Tutorial/php
处遵循了PHP示例但是,即使使用 openid 范围,我也无法获取已登录用户的电子邮件地址。
经过大约24小时的搜索和测试,我最终发现我需要添加个人资料作为范围。我只通过检查请求标头,通过OAuth Sandbox https://oauthplay.azurewebsites.net/发现了这一点。
希望这有助于某人。
这应该更好地记录下来。