Outlook 用户照片 REST API 参考(试用版)

适用于: Exchange Online | Office 365

备注

本文档涵盖了试用版用户照片 API 的预览。 预览功能在最终确定之前可能会发生变化,并可能会让使用它们的代码无法正常运行。 正因为如此,一般而言,生产代码中只应使用生产版本的 API。 如果可用,2.0 版目前是首选版本。

用户照片 API 可下载或设置用户的照片,这类用户的邮箱由 Office 365 上的 Azure Active Directory 提供安全保护。

备注

用户照片 API 不支持 Microsoft 帐户域中的消费类邮箱,例如 Hotmail.com、Live.com、MSN.com、Outlook.com 和 Passport.com。

对 API 的 beta 版本不感兴趣? 在左侧的目录中,转到 Office 365 REST API 参考部分,然后选择所需的版本。

使用用户照片 REST API

身份验证

与其他 Outlook REST API 一样,对于 Outlook 用户照片 API 的每个请求,都应该包含有效的访问令牌。 获取访问令牌需要注册和识别应用,并获得相应的授权。

你可以了解更多有关简化注册和授权选项的信息。 在用户照片 API 中继续执行特定操作时,请记住这一点。

API 版本

此 API 已从预览升级到正式发布 (GA) 状态。 它在 Outlook REST API 的 2.0 和 beta 版本中得到支持。

目标用户

目标用户可以是登录用户,也可以是用户 ID 指定的用户。

有关使用此 API 的更多信息以及 Outlook REST API 所有子集的通用信息,请参阅使用 Outlook REST API

用户照片操作

用户照片操作可让你获取二进制格式的用户照片元数据和照片流,并设置用户照片。

除单张照片外,用户照片 API 还提供了一个处于预览状态的照片集(但仅在 beta 版本中提供)。 该照片集可让你指定自己感兴趣的特定照片尺寸。

获取照片元数据

获取所请求的用户照片的信息,其中包括内容类型、电子标签以及以像素为单位的宽度和高度。

所需范围

使用以下范围之一获取指定用户的照片元数据,这些指定用户可以是登录用户:

  • user.readbasic.all
  • user.read.all
  • user.readwrite.all

还可以使用以下范围来获取特定登录用户的照片元数据:

  • user.read

获取最大可用照片的元数据

GET https://outlook.office.com/api/beta/me/photo
GET https://outlook.office.com/api/beta/Users('{user_id}')/photo

获取所有可用照片尺寸的元数据

GET https://outlook.office.com/api/beta/me/photos
GET https://outlook.office.com/api/beta/Users('{user_id}')/photos

获取指定照片尺寸的元数据

GET https://outlook.office.com/api/beta/me/photos('{size}')
GET https://outlook.office.com/api/beta/Users('{user_id}')/photos('{size}')
可选参数 类型 说明
Url 参数
user_id string 用户的电子邮件地址。
size string 照片尺寸。 如果照片在 Active Directory 和邮箱中均不存在,则会自动生成 '1x1' 的值。

如果照片存储在邮箱中,则预定义的尺寸为:'48x48'、'64x64'、'96x96'、'120x120'、'240x240'、'360x360'、'432x432'、'504x504' 和 '648x648'。 如果用户没有上传足够大的照片,则仅可用较小的预定义尺寸表示的尺寸可用。 例如,如果用户上传像素为 504x504 的照片,除 648x648 外所有尺寸的照片都可供下载。

如果照片存储在 Azure Active Directory 中,则可以使用任何尺寸。

示例请求

请求为登录用户获取 240x240 像素图像的元数据。

GET https://outlook.office.com/api/beta/me/photos('240x240')

示例响应数据

以下响应数据显示照片元数据。 HTTP 响应代码是 200。

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/photo/$entity",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-7d04-b48b-20075df800e5@1717622f-1d94-c0d4-9d74-f907ad6677b4')/photo",
    "@odata.mediaContentType": "image/jpeg",
    "@odata.mediaEtag": "\"BA09D118\"",
    "Id": "240X240",
    "Width": 240,
    "Height": 240
}

以下响应数据显示了尚未为用户上传照片时的响应内容。 HTTP 响应代码是 200。

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/photo/$entity",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-7d04-b48b-20075df800e5@1717622f-1d94-c0d4-9d74-f907ad6677b4')/photo",
    "@odata.mediaContentType": "image/gif",
    "@odata.mediaEtag": "",
    "Id": "1X1",
    "Width": 1,
    "Height": 1
}

获取照片

获取指定用户的用户照片。

此操作允许租户管理员让应用程序获取租户中任何用户的用户照片。

所需范围

使用以下范围之一获取指定用户的照片元数据,这些指定用户可以是登录用户:

  • user.readbasic.all
  • user.read.all
  • user.readwrite.all

你还可以使用以下范围来获取特定登录用户的照片:

  • user.read
  • user.readwrite

获取最大的可用尺寸

GET https://outlook.office.com/api/beta/me/photo/$value
GET https://outlook.office.com/api/beta/Users('{user_id}')/photo/$value

获取特定尺寸的照片

GET https://outlook.office.com/api/beta/me/photos('{size}')/$value
GET https://outlook.office.com/api/beta/Users('{user_id}')/photos('{size}')/$value
可选参数 类型 说明
Url 参数
user_id string 用户的电子邮件地址。
size string 照片尺寸。 如果照片在 Active Directory 和邮箱中均不存在,则会自动生成 '1x1' 的值。

如果照片存储在邮箱中,则预定义的尺寸为:'48x48'、'64x64'、'96x96'、'120x120'、'240x240'、'360x360'、'432x432'、'504x504' 和 '648x648'。 如果用户没有上传足够大的照片,则仅可用较小的预定义尺寸表示的尺寸可用。 例如,如果用户上传像素为 504x504 的照片,除 648x648 外所有尺寸的照片都可供下载。

如果照片存储在 Azure Active Directory 中,则可以使用任何尺寸。

示例请求

此请求获取已登录用户的照片。

GET https://outlook.office.com/api/beta/me/photo/$value
Content-Type: image/jpg

响应数据

包含所请求照片的二进制数据。HTTP 响应代码为 200。

设置用户照片

将照片分配给指定的用户。 照片应为二进制。 它会替换该用户的任何现有照片。

此操作允许租户管理员让应用程序设置租户中任何用户的用户照片。 在测试版中仅使用 PUT 进行此操作。

所需范围

使用以下范围设置指定用户的照片,该用户可以是承租人中的任何用户或已登录用户:

  • user.readwrite.all

你还可以使用以下范围来设置特定登录用户的照片:

  • user.readwrite
PUT https://outlook.office.com/api/beta/me/photo/$value
PUT https://outlook.office.com/api/beta/users('{user_id}')/photo/$value
可选参数 类型 说明
Url 参数
user_id string 用户的电子邮件地址。

示例请求

PUT https://outlook.office.com/api/beta/me/photo/$value
Content-Type: image/jpeg

包括请求正文中照片的二进制数据。

响应数据

成功的请求会返回 HTTP 200。

后续步骤

无论你准备开始构建应用还是只想了解更多信息,我们都已为你考虑周全。

或者,了解有关使用 Office 365 平台的更多信息: