在 Microsoft Graph API 中获取个人资料图片一无所获

Tom*_*han 1 azure-active-directory microsoft-graph-api

我正在尝试使用Microsoft Graph API获取用户的个人资料图片(并且,理想情况下,具有不同颜色背景的后备首字母缩写)使用Microsoft Graph API,但我无法得到任何响应但是 404 状态和以下正文(令人讨厌的是也延迟了 5-20 秒):

{
    "error": {
        "code": "ResourceNotFound",
        "message": "Resource could not be discovered.",
        "innerError": {
            "request-id": "1e7f0ca4-2cd4-4602-a903-b0bde1ec8ea0",
            "date": "2018-06-11T14:04:10"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我什至尝试过在线 Graph Explorer,但结果相同。我已将个人资料图片上传到我自己的帐户,但仍然得到相同的结果。

可能是什么原因?还有其他方法可以获取 Azure AD 用户的个人资料图片吗?

Mar*_*eur 9

Microsoft Graph v1.0profilePhoto从 Exchange Online 而非 Azure Active Directory检索用户。因此,没有在 Exchange Online 中设置邮箱的用户将没有profilePhoto可用的邮箱。

文档

从 Exchange Online 访问的用户、组或 Outlook 联系人的个人资料照片。它是未以 base-64 编码的二进制数据。

/beta端点中,profilePhoto资源被扩展为包括 Exchange 和 AAD。来自Beta 文档

从 Exchange Online 或 Azure Active Directory (AAD) 访问的用户、组或 Outlook 联系人的个人资料照片。它是未以 base-64 编码的二进制数据。

没有关于何时在/v1.0端点上发布此功能的预计时间,在大多数情况下,我会警告不要/beta在生产中使用该功能。然而,我看到一些开发人员使用/beta回退选项来获取profilePhoto:如果/v1.0端点无法返回照片,则会进行后续调用/beta以检查是否有可用的 AAD 图像。这是对 beta 端点的一种相对安全的使用,因为您的应用不会对 beta API 产生严重依赖。