首页 > 解决方案 > Microsoft Graph API - beta/users/{id}/photo 上的 MailboxNotEnabledForRESTAPI 404 错误

问题描述

我正在尝试使用beta/users/{id}/photoMicrosoft Graph API 的 beta 端点获取用户个人资料照片,但出现 404 MailboxNotEnabledForRESTAPI 错误

  error: {
    code: 'MailboxNotEnabledForRESTAPI',
    message: 'REST API is not yet supported for this mailbox.'
    ...

该错误没有意义,因为我正在尝试访问与邮箱无关的 Azure 广告个人资料图片。

有人会知道我是否遗漏了什么吗?

标签: microsoft-graph-api

解决方案


您正在使用的端点说明了有关获取用户图片的以下内容:

注意:尝试获取用户照片时,此操作首先尝试从 Microsoft 365 检索指定的照片。如果该照片在 Microsoft 365 中不可用,API 会尝试从 Azure Active Directory 检索照片。

从历史上看,用户个人资料图片存储在 Exchange 服务器中,显然他们现在也将图像保存在其他地方。

为了检查您的问题,我向没有任何许可证的用户添加了一张图片。并开始在Graph Explorer中尝试请求

  1. 请求v1.0/users/upn_here/photo❌失败ResourceNotFound->Resource could not be discovered.
  2. 请求beta/users/upn_here/photo✔ 向我提供有关图像的信息(例如尺寸)
  3. 请求v1.0/users/upn_here/photo/$value❌失败ResourceNotFound->Resource could not be discovered.
  4. 请求beta/users/upn_here/photo/$value✔ 给我图像。(我看到我之前上传的图片)。

在此处输入图像描述

您应该检查使用的访问令牌,复制令牌并将其粘贴到此处https://jwt.ms(Microsoft 拥有的页面向您显示令牌中的数据)。

根据文档,您至少需要 delegated User.Readscope 或 application scope User.Read.All


推荐阅读