Получение объекта profilePhoto
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Получение указанного объекта profilePhoto или его метаданных (свойств profilePhoto) из Microsoft 365.
Примечание. При попытке ПОЛУЧИТЬ фотографию пользователя эта операция сначала пытается получить указанную фотографию из Microsoft 365. Если фотография недоступна в Microsoft 365, api triee для получения фотографии из идентификатора Microsoft Entra.
Поддерживаемые размеры фотографий в формате HD для Microsoft 365: 48 x 48, 64 x 64, 96 x 96, 120 x 120, 240 x 240, 360 x 360, 432 x 432, 504 x 504 и 648 x 648. Фотографии могут быть любого измерения, если они хранятся в Идентификаторе Microsoft Entra.
Вы можете получить метаданные самой большой доступной фотографии или указать размер и получить метаданные для фотографии этого размера. Если запрашиваемый размер недоступен, вы по-прежнему можете получить меньший размер, который пользователь загрузил и сделал доступным. Например, если пользователь загружает фотографию размером 504 x 504 пикселей, для скачивания доступны все фотографии, кроме размера 648x648. Если указанный размер недоступен в почтовом ящике пользователя или идентификаторе Microsoft Entra, размер 1x1 возвращается вместе с остальными метаданными.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Разрешения
В следующих таблицах показаны минимальные разрешения или разрешения, необходимые для вызова этого API для каждого поддерживаемого типа ресурсов. Следуйте рекомендациям , чтобы запросить разрешения с наименьшими привилегиями. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Для получения фотографии профиля контакта
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Contacts.Read | Contacts.ReadWrite |
Делегированные (личная учетная запись Майкрософт) | Contacts.Read | Contacts.ReadWrite |
Для приложений | Contacts.Read | Contacts.ReadWrite |
Для получения фотографии профиля группы
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All, Group.Read.All, Group.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Приложение | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All, Group.Read.All, Group.ReadWrite.All |
Получение фотографии профиля команды
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Team.ReadBasic.All | TeamSettings.Read.All, TeamSettings.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Для приложений | 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 |
Делегированные (личная учетная запись Майкрософт) | User.Read | User.ReadWrite |
Для приложений | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All, User.Read.All, User.ReadWrite.All |
Примечание.
- Получение фотографии пользователя с помощью API Microsoft Graph в настоящее время не поддерживается в клиентах Azure AD B2C.
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 | Размер фотографии. Поддерживаемые размеры фотографий в формате HD для Microsoft 365: 48 x 48, 64 x 64, 96 x 96, 120 x 120, 240 x 240, 360 x 360, 432 x 432, 504 x 504 и 648 x 648. Фотографии могут быть любого измерения, если они хранятся в Идентификаторе Microsoft Entra. |
Необязательные параметры запросов
Этот метод поддерживает параметры запросов OData для настройки отклика.
Заголовки запросов
Имя | Тип | Описание |
---|---|---|
Authorization | string | Bearer {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. Получение фотографии 48 x 48 для вошедшего пользователя
Запрос
Ниже показан пример запроса.
GET https://graph.microsoft.com/beta/me/photos/48x48/$value
Content-Type: image/jpg
Примечание.
- Чтобы обеспечить фиксированный размер выходной фотографии, используйте выделенную конечную точку для фотографий с фиксированным размером (/photos) вместо конечной точки фотографии по умолчанию, которая предоставляет наибольшее доступное фото (/photo).
Отклик
Содержит двоичные данные запрошенной фотографии 48 x 48. Код 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 показано, как создать массив, который можно передать как значение параметра Attachments
для сообщения Outlook.
const attachments = [{
'@odata.type': '#microsoft.graph.fileAttachment',
ContentBytes: file.toString('base64'),
Name: 'mypic.jpg'
}];
Дополнительные сведения о реализации см. в примере Microsoft Graph Connect для Node.js.
Если требуется, чтобы изображение отображалось на веб-странице, создайте объект в памяти на его основе и сделайте этот объект источником элемента изображения. В следующем примере JavaScript показана эта операция.
const url = window.URL || window.webkitURL;
const blobUrl = url.createObjectURL(image.data);
document.getElementById(imageElement).setAttribute("src", blobUrl);