Compartir a través de


Get profilePhoto

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Obtenga la propiedad profilePhoto especificada o sus metadatos ( propiedades profilePhoto) de Microsoft 365.

Nota: Al intentar obtener una foto de usuario , esta operación primero intenta recuperar la foto especificada de Microsoft 365. Si la foto no está disponible en Microsoft 365, la API debe usarse para recuperar la foto del id. de Microsoft Entra.

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 cualquier dimensión si se almacenan en microsoft entra id.

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 que solicita no está disponible, puede obtener un tamaño más pequeño que el usuario haya cargado y puesto a disposición. Por ejemplo, si el usuario carga una foto de 504 x 504 píxeles, todo excepto el tamaño de foto de 648 x 648 está disponible para su descarga. Si el tamaño especificado no está disponible en el buzón del usuario o en el identificador de Microsoft Entra, el tamaño 1x1 se devuelve con el resto de los metadatos.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

En las tablas siguientes se muestran los permisos o permisos con privilegios mínimos necesarios para llamar a esta API en cada tipo de recurso admitido. Siga los procedimientos recomendados para solicitar los permisos con privilegios mínimos. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Para recuperar la foto de perfil de un contacto

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Contacts.Read Contacts.ReadWrite
Delegado (cuenta personal de Microsoft) Contacts.Read Contacts.ReadWrite
Aplicación Contacts.Read Contacts.ReadWrite

Para recuperar la foto de perfil de un grupo

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) ProfilePhoto.Read.All ProfilePhoto.ReadWrite.All, Group.Read.All, Group.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación ProfilePhoto.Read.All ProfilePhoto.ReadWrite.All, Group.Read.All, Group.ReadWrite.All

Para recuperar la foto de perfil de un equipo

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Team.ReadBasic.All TeamSettings.Read.All, TeamSettings.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación Team.ReadBasic.All TeamSettings.Read.All, TeamSettings.ReadWrite.All

Para recuperar la foto de perfil de un usuario

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) ProfilePhoto.Read.All ProfilePhoto.ReadWrite.All, User.Read, User.ReadBasic.All, User.Read.All, User.ReadWrite, User.ReadWrite.All
Delegado (cuenta personal de Microsoft) User.Read User.ReadWrite
Aplicación ProfilePhoto.Read.All ProfilePhoto.ReadWrite.All, User.Read.All, User.ReadWrite.All

Nota:

  • La recuperación de la foto de un usuario mediante Microsoft Graph API no se admite actualmente en los inquilinos de Azure AD B2C.

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
GET /team/{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
GET /team/{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 cualquier dimensión si se almacenan en microsoft entra id.

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. Obtenga más información sobre la autenticación y la autorización.

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

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/me/photo/$value
Content-Type: image/jpg

Respuesta

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

HTTP/1.1 200 OK

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

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/me/photos/48x48/$value
Content-Type: image/jpg

Nota:

  • Para garantizar un tamaño fijo para la foto de salida, use el punto de conexión dedicado para las fotos con tamaños fijos (/photos) en lugar de depender del punto de conexión de foto predeterminado, que proporciona la foto más grande disponible (/photo).

Respuesta

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

HTTP/1.1 200 OK

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

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/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/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
}

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/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
}

Ejemplo 4: Obtener los metadatos de la foto del equipo

Solicitud

En el ejemplo siguiente se muestra una solicitud para obtener los metadatos de la foto de equipo.

GET https://graph.microsoft.com/beta/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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/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
}

Ejemplo 5: Obtener los datos binarios de la foto del equipo

En el ejemplo siguiente se muestra una solicitud para obtener los datos binarios de la foto del equipo.

Solicitud

GET https://graph.microsoft.com/beta/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo/$value

Respuesta

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

HTTP/1.1 200 OK

Usar los datos binarios de la foto solicitada

Cuando se usa el /photo/$value punto de conexión para obtener los datos binarios de una foto de perfil, es preciso convertir los datos en una cadena 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'
}];

Para obtener más información sobre la implementación, vea El ejemplo de Microsoft Graph Connect para Node.js.

Si quiere que la imagen aparezca en una página web, cree un objeto en memoria de la imagen y conviértalo en el origen de un elemento Image. En el siguiente ejemplo de JavaScript se muestra esta operación.

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