获取 profilePhoto
命名空间:microsoft.graph
获取指定的 profilePhoto 或其元数据(profilePhoto 属性)。
Microsoft 365 支持以下高清照片尺寸:48x48、64x64、96x96、120x120、240x240、360x360、432x432、504x504 和 648x648。 如果照片存储在 Azure Active Directory 中,可以采用任何尺寸。
可以获取最大可用照片的元数据,也可以指定尺寸来获取相应照片尺寸的元数据。如果请求的照片大小不可用,则仍然可以获取用户已上传且可供使用的较小尺寸。例如,如果用户上传像素为 504x504 的照片,除 648x648 外的所有尺寸的照片都可供下载。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
检索联系人的个人资料照片
| 权限类型 | 权限(从最低特权到最高特权) |
|---|---|
| 委派(工作或学校帐户) | Contacts.Read、Contacts.ReadWrite |
| 委派(个人 Microsoft 帐户) | Contacts.Read、Contacts.ReadWrite |
| 应用程序 | Contacts.Read、Contacts.ReadWrite |
检索组的个人资料照片
| 权限类型 | 权限(从最低特权到最高特权) |
|---|---|
| 委派(工作或学校帐户) | Group.Read.All、Group.ReadWrite.All |
| 委派(个人 Microsoft 帐户) | 不支持。 |
| 应用程序 | Group.Read.All、Group.ReadWrite.All |
检索团队的个人资料照片
| 权限类型 | 权限(从最低特权到最高特权) |
|---|---|
| 委派(工作或学校帐户) | TeamReadBasicAll、TeamSettingsReadAll、TeamSettingsReadWriteAll |
| 委派(个人 Microsoft 帐户) | 不支持。 |
| 应用程序 | TeamReadBasicAll、TeamSettingsReadAll、TeamSettingsReadWriteAll |
检索用户的个人资料照片
| 权限类型 | 权限(从最低特权到最高特权) |
|---|---|
| 委派(工作或学校帐户) | User.Read、User.ReadBasic.All、User.Read.All、User.ReadWrite、User.ReadWrite.All |
| 委派(个人 Microsoft 帐户) | User.Read、User.ReadWrite |
| 应用程序 | User.Read.All、User.ReadWrite.All |
备注
- 个人 Microsoft 帐户不支持元数据操作。
- 当前在使用应用权限访问组照片方面存在一个 已知问题。
- Azure AD B2C 租户目前不支持使用 Microsoft 图形 API 检索用户的照片。
HTTP 请求
获取照片
GET /me/photo/$value
GET /users/{id | userPrincipalName}/photo/$value
GET /groups/{id}/photo/$value
GET /me/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/contacts/{id}/photo/$value
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /team/{id}/photo/$value
获取照片的元数据
GET /me/photo
GET /me/photos
GET /users/{id | userPrincipalName}/photo
GET /groups/{id}/photo
GET /me/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contacts/{id}/photo
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /team/{id}/photo
获取指定照片尺寸的元数据
GET /me/photos/{size}
GET /users/{id | userPrincipalName}/photos/{size}
GET /groups/{id}/photos/{size}
路径参数
| 参数 | 类型 | 说明 |
|---|---|---|
| size | String | 照片尺寸。 Microsoft 365 支持以下高清照片尺寸:48x48、64x64、96x96、120x120、240x240、360x360、432x432、504x504 和 648x648。 如果照片存储在 Azure Active Directory 中,可以采用任何尺寸。 |
可选的查询参数
此方法支持使用 OData 查询参数来帮助自定义响应。
请求标头
| 名称 | 类型 | 说明 |
|---|---|---|
| Authorization | string | Bearer {token}。必需。 |
请求正文
请勿提供此方法的请求正文。
响应
获取照片的响应
如果成功,此方法返回 200 OK 响应代码和所请求照片的二进制数据。如果照片不存在,此操作返回 404 Not Found。
获取照片元数据的响应
如果成功,此方法在响应正文中返回 200 OK 响应代码和 profilePhoto 对象。
示例
示例 1:为已登录用户获取最大可用大小的照片
请求
GET https://graph.microsoft.com/v1.0/me/photo/$value
响应
包含所请求照片的二进制数据。HTTP 响应代码为 200。
示例 2:获取已登录用户的 48x48 照片
请求
GET https://graph.microsoft.com/v1.0/me/photos/48x48/$value
Content-Type: image/jpg
响应
包含所请求的 48x48 照片的二进制数据。HTTP 响应代码为 200。
示例 3:获取已登录用户的用户照片的元数据
请求
GET https://graph.microsoft.com/v1.0/me/photo
响应
以下响应数据显示照片的元数据。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/photo/$entity",
"@odata.id": "https://graph.microsoft.com/v1.0/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/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/photo/$entity",
"@odata.id": "https://graph.microsoft.com/v1.0/users('ddfcd489-628b-7d04-b48b-20075df800e5@1717622f-1d94-c0d4-9d74-f907ad6677b4')/photo",
"@odata.mediaContentType": "image/gif",
"@odata.mediaEtag": "",
"id": "1x1",
"width": 1,
"height": 1
}
示例 4:获取团队照片的元数据
请求
下述示例展示了要获取团队照片元数据的请求。
GET https://graph.microsoft.com/v1.0/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo
响应
下面是一个响应示例。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams('172b0cce-e65d-44ce-9a49-91d9f2e8491e')/photo/$entity",
"@odata.id": "https://graph.microsoft.com/v1.0/teams('172b0cce-e65d-44ce-9a49-91d9f2e8491e')/photo",
"@odata.mediaContentType": "image/jpeg",
"@odata.mediaEtag": "\"BA09D118\"",
"id": "240X240",
"width": 240,
"height": 240
}
示例 5:获取团队照片的二进制数据
以下示例展示了要获取团队照片二进制数据的请求。
请求
GET https://graph.microsoft.com/v1.0/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo/$value
响应
包含所请求照片的二进制数据。HTTP 响应代码为 200。
使用所请求照片的二进制数据
使用 /photo/$value 终结点来获取个人资料照片的二进制数据时,需要将数据转换为 Base64 字符串,以便将其添加为电子邮件附件。 以下是 JavaScript 中的一个示例,介绍如何创建一个数组,并将其作为 Outlook 邮件的 Attachments 参数值传递。
const attachments = [{
'@odata.type': '#microsoft.graph.fileAttachment',
ContentBytes: file.toString('base64'),
Name: 'mypic.jpg'
}];
有关此示例的实现,请参阅用于 Node.js 的 Microsoft Graph Connect 示例。
如果想要在网页上显示图像,可以通过图像创建内存中对象,然后使该对象成为图像元素源。下面是此操作的 JavaScript 示例。
const url = window.URL || window.webkitURL;
const blobUrl = url.createObjectURL(image.data);
document.getElementById(imageElement).setAttribute("src", blobUrl);
反馈
提交和查看相关反馈