获取 profilePhoto
命名空间:microsoft.graph
重要
Microsoft Graph /beta
版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
获取 Microsoft 365 中指定的 profilePhoto 或其元数据(profilePhoto 属性)。
注意:尝试获取 用户 照片时,此操作首先尝试从 Microsoft 365 检索指定的照片。 如果照片在 Microsoft 365 中不可用,API 会尝试从 Entra ID Microsoft检索照片。
Microsoft 365 支持以下高清照片尺寸:48x48、64x64、96x96、120x120、240x240、360x360、432x432、504x504 和 648x648。 如果照片存储在 Entra ID Microsoft,则照片可以是任何尺寸。
可以获取照片最大尺寸的元数据,也可以指定尺寸来获取相应照片尺寸的元数据。 如果请求的大小不可用,你仍然可以获得用户已上传并可用的较小大小。 例如,如果用户上传的照片为 504x504 像素,则除了 648x648 照片大小,所有其他照片都可以下载。 如果指定的大小在用户的邮箱或Microsoft Entra ID 中不可用,则会返回大小 1x1 以及其余元数据。
此 API 可用于以下国家级云部署。
全局服务 | 美国政府 L4 | 美国政府 L5 (DOD) | 由世纪互联运营的中国 |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
权限
下表显示了对每种受支持的资源类型调用此 API 所需的最低特权权限。 请遵循 最佳做法 来请求最低特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考。
检索联系人的个人资料照片
权限类型 | 最低特权权限 | 更高特权权限 |
---|---|---|
委派(工作或学校帐户) | Contacts.Read | Contacts.ReadWrite |
委派(个人 Microsoft 帐户) | Contacts.Read | Contacts.ReadWrite |
应用程序 | Contacts.Read | Contacts.ReadWrite |
检索组的个人资料照片
权限类型 | 最低特权权限 | 更高特权权限 |
---|---|---|
委派(工作或学校帐户) | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All、Group.Read.All、Group.ReadWrite.All |
委派(个人 Microsoft 帐户) | 不支持。 | 不支持。 |
应用程序 | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All、Group.Read.All、Group.ReadWrite.All |
检索团队的个人资料照片
权限类型 | 最低特权权限 | 更高特权权限 |
---|---|---|
委派(工作或学校帐户) | Team.ReadBasic.All | TeamSettings.Read.All、TeamSettings.ReadWrite.All |
委派(个人 Microsoft 帐户) | 不支持。 | 不支持。 |
应用程序 | Team.ReadBasic.All | TeamSettings.Read.All、TeamSettings.ReadWrite.All |
检索用户的个人资料照片
权限类型 | 最低特权权限 | 更高特权权限 |
---|---|---|
委派(工作或学校帐户) | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All、User.Read、User.ReadBasic.All、User.Read.All、User.ReadWrite、User.ReadWrite.All |
委派(个人 Microsoft 帐户) | User.Read | User.ReadWrite |
应用程序 | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All、User.Read.All、User.ReadWrite.All |
注意
- Azure AD B2C 租户目前不支持使用 Microsoft Graph 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。 如果照片存储在 Entra ID Microsoft,则照片可以是任何尺寸。 |
可选的查询参数
此方法支持使用 OData 查询参数来帮助自定义响应。
请求标头
名称 | 类型 | 说明 |
---|---|---|
Authorization | string | 持有者 {token}。 必填。 详细了解 身份验证和授权。 |
请求正文
请勿提供此方法的请求正文。
响应
获取照片的响应
如果成功,此方法返回 200 OK
响应代码和所请求照片的二进制数据。 如果照片不存在,此操作返回 404 Not Found
。
获取照片元数据的响应
如果成功,此方法在响应正文中返回 200 OK
响应代码和 profilePhoto 对象。
示例
示例 1:为已登录用户获取最大可用大小的照片
请求
以下示例显示了一个请求。
GET https://graph.microsoft.com/beta/me/photo/$value
Content-Type: image/jpg
响应
包含所请求照片的二进制数据。 HTTP 响应代码为 200。
HTTP/1.1 200 OK
示例 2:获取已登录用户的 48x48 照片
请求
以下示例显示了一个请求。
GET https://graph.microsoft.com/beta/me/photos/48x48/$value
Content-Type: image/jpg
注意
- 若要确保输出照片的大小固定,请对大小固定的照片使用专用终结点, (/photos) ,而不是依赖于默认照片终结点,后者提供最大的可用照片 (/photo) 。
响应
包含所请求的 48x48 照片的二进制数据。 HTTP 响应代码为 200。
HTTP/1.1 200 OK
示例 3:获取已登录用户的用户照片的元数据
请求
以下示例显示了一个请求。
GET https://graph.microsoft.com/beta/me/photo
响应
以下响应数据显示照片的元数据。
注意:为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Me/photo/$entity",
"@odata.id": "https://graph.microsoft.com/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/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Me/photo/$entity",
"@odata.id": "https://graph.microsoft.com/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
}
示例 4:获取团队照片的元数据
请求
以下示例演示了获取团队照片元数据的请求。
GET https://graph.microsoft.com/beta/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo
响应
以下示例显示了相应的响应。
注意:为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('172b0cce-e65d-44ce-9a49-91d9f2e8491e')/photo/$entity",
"@odata.id": "https://graph.microsoft.com/beta/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/beta/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo/$value
响应
包含所请求照片的二进制数据。 HTTP 响应代码为 200。
HTTP/1.1 200 OK
使用所请求照片的二进制数据
使用 /photo/$value
终结点获取个人资料照片的二进制数据时,需要将数据转换为 base-64 字符串以将其添加为电子邮件附件。 以下 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);