我正在尝试在使用 EWS 连接到 Office 365 的电子邮件应用程序的上下文中访问登录用户的个人资料照片。
该应用程序已在 Portal.azure.com 上注册,并具有以下所需权限:
- Office 365 Exchange Online -> 通过 Exchange Web 服务以登录用户身份访问邮箱
- Windows Azure Active Directory -> 登录并读取用户配置文件
EWS 部分工作得很好,我能够让用户登录、获取访问和刷新令牌,并使用“授权:不记名 access_token”执行 EWS 操作。
我遇到问题的部分是获取用户的个人资料照片。
这是我要查看的文档:
https://msdn.microsoft.com/en-us/office/office365/api/photo-rest-operations https://msdn.microsoft.com/en-us/office/office365/api/photo-rest-operations
我尝试使用的 API 端点是:
GET https://outlook.office.com/api/v2.0/me/photo https://outlook.office.com/api/v2.0/me/photo
...带有“授权:不记名 access_token”标头。
上面的 API 返回此响应:
HTTP 403
{“错误”:{“代码”:“ErrorAccessDenied”,“消息”:“访问被拒绝。
检查凭据并重试。"}}
可能出什么问题了?
- 根据上述文档,应该可以使用 user.read 范围获取用户的照片。
- 我上面提到的“登录并读取用户个人资料”权限有一个工具提示说“User.Read”,所以我相信这是正确的范围
我尝试在 jwt.io 上解码我的访问令牌,它具有:"scp": "full_access_as_user"
- 我的 User.Read 范围在哪里,或者“完全访问权限”是否包括“user.read”?
有任何想法吗?
这是因为您尝试使用 v2 端点 Rest API,但没有使用 v2 端点注册应用程序。
用户照片 API 仅适用于 Azure AD v2 身份验证端点,不适用于 Azure AD 和 Oauth:
你需要去微软应用程序注册门户 https://apps.dev.microsoft.com/注册您的应用程序。欲了解更多详情,您可以参考这个文件 https://msdn.microsoft.com/en-us/office/office365/api/use-outlook-rest-api#azure-ad-v2-authentication-endpoint.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)