Get photo (Obtener foto)

Espacio de nombres: microsoft.graph

Obtenga el objeto profilePhoto especificado o sus metadatos (propiedades profilePhoto).

Nota Esta operación en la versión 1.0 admite solo un buzón profesional o educativo del usuario y no uno personal.

Los tamaños de las fotos en HD de Microsoft 365 son los siguientes: 48 x 48, 64 x 64, 96 x 96, 120 x 120, 240 x 240, 360 x 360, 432 x 432, 504 x 504 y 648 x 648. Las fotos pueden ser de cualquier dimensión si se almacenan en Azure Active Directory.

Puede obtener los metadatos de la foto más grande disponible, o bien especifique un tamaño para obtener los metadatos de ese tamaño de foto. Si el tamaño solicitado no está disponible, puede obtener un tamaño menor que el usuario haya cargado y facilitado. Por ejemplo, si el usuario carga una foto de 504 x 504 píxeles, todos los tamaños de foto salvo el de 648 x 648 estarán disponibles para su descarga.

Permisos

Se requiere uno de los siguientes permisos para llamar a esta API. Para obtener más información, incluido cómo elegir permisos, vea Permisos.

Para recuperar la foto de perfil de un usuario

Tipo de permiso Permisos (de menos a más privilegiados)
Delegado (cuenta profesional o educativa) User.Read, User.ReadBasic.All, User.Read.All, User.ReadWrite, User.ReadWrite.All
Delegado (cuenta personal de Microsoft) User.Read, User.ReadWrite
Aplicación User.Read.All, User.ReadWrite.All

Para recuperar la foto de perfil de un grupo

Tipo de permiso Permisos (de menos a más privilegiados)
Delegado (cuenta profesional o educativa) Group.Read.All, Group.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida.
Aplicación Group.Read.All, Group.ReadWrite.All

Para recuperar la foto de perfil de un contacto

Tipo de permiso Permisos (de menos a más privilegiados)
Delegado (cuenta profesional o educativa) Contacts.Read, Contacts.ReadWrite
Delegado (cuenta personal de Microsoft) Contacts.Read, Contacts.ReadWrite
Aplicación Contacts.Read, Contacts.ReadWrite

Nota:

  1. No se admite la operación de metadatos para las cuentas personales de Microsoft.
  2. Actualmente existe un problema conocido con el acceso a las fotos de grupo mediante los permisos de la aplicación.

Solicitud HTTP

Obtener la foto

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

Obtener los metadatos de la foto

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

Obtener los metadatos de un tamaño de foto específico

GET /me/photos/{size}
GET /users/{id | userPrincipalName}/photos/{size}
GET /groups/{id}/photos/{size}

Parámetros de ruta de acceso

Parameter Tipo Descripción
size String Un tamaño de foto. Los tamaños de las fotos en HD de Microsoft 365 son los siguientes: 48 x 48, 64 x 64, 96 x 96, 120 x 120, 240 x 240, 360 x 360, 432 x 432, 504 x 504 y 648 x 648. Las fotos pueden ser de cualquier dimensión si se almacenan en Azure Active Directory.

Parámetros de consulta opcionales

Este método admite los parámetros de consulta de OData a modo de ayuda para personalizar la respuesta.

Encabezados de solicitud

Nombre Tipo Descripción
Authorization string {token} de portador. Obligatorio.

Cuerpo de la solicitud

No proporcione un cuerpo de solicitud para este método.

Respuesta

Respuesta para obtener la foto

Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK y los datos binarios de la foto solicitada. Si no hay ninguna foto, la operación devuelve 404 Not Found.

Respuesta para obtener los metadatos de la foto

Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK y el objeto profilePhoto en el cuerpo de la respuesta.

Ejemplos

Ejemplo 1: se obtiene la foto del usuario que ha iniciado sesión, en el tamaño más grande disponible

Solicitud
GET https://graph.microsoft.com/v1.0/me/photo/$value
Respuesta

Contiene los datos binarios de la foto solicitada. El código de respuesta HTTP es 200.

Ejemplo 2: se obtiene la foto de 48x48 para el usuario que inició sesión

Solicitud
GET https://graph.microsoft.com/v1.0/me/photos/48x48/$value
Content-Type: image/jpg
Respuesta

Contiene los datos binarios de la foto solicitada de 48x48. El código de respuesta HTTP es 200.

Ejemplo 3: se obtienen los metadatos de la foto del usuario que ha iniciado sesión

Solicitud
GET https://graph.microsoft.com/v1.0/me/photo
Respuesta

Los siguientes datos de respuesta muestran los metadatos de la foto.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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
}

Los siguientes datos de respuesta muestran el contenido de una respuesta cuando aún no se ha cargado ninguna foto para el usuario.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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
}

Usar los datos binarios de la foto solicitada

Cuando use el punto de conexión /photo/$value para obtener los datos binarios de una foto de perfil, tendrá que convertir los datos en una cadena en base 64 para agregarlos como datos adjuntos de correo electrónico. Este es un ejemplo de JavaScript de cómo crear una matriz que se puede pasar como valor del parámetro Attachments de un mensaje de Outlook.

const attachments = [{
  '@odata.type': '#microsoft.graph.fileAttachment',
  ContentBytes: file.toString('base64'),
  Name: 'mypic.jpg'
}];

Vea el Ejemplo de conexión a Microsoft Graph de Node.js para obtener una implementación de este ejemplo.

Si desea mostrar la imagen en una página web, cree un objeto en memoria a partir de la imagen y convierta ese objeto en el origen de un elemento de imagen. Este es un ejemplo en JavaScript de esta operación.

const url = window.URL || window.webkitURL;
const blobUrl = url.createObjectURL(image.data);
document.getElementById(imageElement).setAttribute("src", blobUrl);