Obtenir une photo

Espace de noms: microsoft.graph

Obtenez l’élément profilePhoto spécifié ou ses métadonnées (propriétés profilePhoto).

Les tailles de photos HD prises en charge sur Office 365 sont les suivantes : « 48 x 48 », « 64 x 64 », « 96 x 96 », « 120 x 120 », « 240 x 240 », « 360 x 360 », « 432 x 432 », « 504 x 504 » et « 648 x 648 ». Les photos peuvent être de n’importe quelle dimension si elles sont stockées dans Azure Active Directory.

Vous pouvez obtenir les métadonnées de la plus grande photo disponible ou spécifier une taille pour obtenir les métadonnées pour cette taille de photo. Si la taille que vous demandez n’est pas disponible, vous pouvez toujours obtenir une plus petite taille que celle de la photo que l’utilisateur a téléchargée et mise à disposition. Par exemple, si l’utilisateur charge une photo de 504 x 504 pixels, toutes les tailles de photo sont disponibles pour téléchargement, à l’exception de la taille 648 x 648.

Autorisations

L’une des autorisations suivantes est nécessaire pour appeler cette API. Pour plus d’informations, notamment sur la façon de choisir les autorisations, voir Autorisations.

Pour récupérer la photo de profil d’un utilisateur

Type d’autorisation Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins)
Déléguée (compte professionnel ou scolaire) User.Read, User.ReadBasic.All, User.Read.All, User.ReadWrite, User.ReadWrite.All
Déléguée (compte Microsoft personnel) User.Read, User.ReadWrite
Application User.Read.All, User.ReadWrite.All

Pour récupérer la photo de profil d’un groupe

Type d’autorisation Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins)
Déléguée (compte professionnel ou scolaire) Group.Read.All, Group.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge.
Application Group.Read.All, Group.ReadWrite.All

Pour récupérer la photo de profil d’un contact

Type d’autorisation Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins)
Déléguée (compte professionnel ou scolaire) Contacts.Read, Contacts.ReadWrite
Déléguée (compte Microsoft personnel) Contacts.Read, Contacts.ReadWrite
Application Contacts.Read, Contacts.ReadWrite

Remarques :

  • L’opération de métadonnées n’est pas prise en charge pour les comptes Microsoft personnels.
  • Il existe actuellement un problème connu avec l’accès aux photos de groupe à l’aide des autorisations d’application.

Requête HTTP

Obtenir la photo

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

Obtenir les métadonnées de la photo

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

Obtenez les métadonnées pour une taille de photo spécifique.

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

Paramètres du chemin d’accès

Paramètre Type Description
taille String Taille de photo. Les tailles de photos HD prises en charge sur Office 365 sont les suivantes : « 48 x 48 », « 64 x 64 », « 96 x 96 », « 120 x 120 », « 240 x 240 », « 360 x 360 », « 432 x 432 », « 504 x 504 » et « 648 x 648 ». Les photos peuvent être de n’importe quelle dimension si elles sont stockées dans Azure Active Directory.

Paramètres facultatifs de la requête

Cette méthode prend en charge les paramètres de requête OData pour vous aider à personnaliser la réponse.

En-têtes de demande

Nom Type Description
Autorisation string Porteur {token}. Obligatoire.

Corps de la demande

N’indiquez pas le corps de la demande pour cette méthode.

Réponse

Réponse pour obtenir la photo

Si elle réussit, cette méthode renvoie un code de réponse 200 OK et des données binaires de la photo demandée. Si aucune photo n’existe, l’opération renvoie 404 Not Found.

Réponse pour obtenir les métadonnées de la photo

Si elle réussit, cette méthode renvoie un code de réponse 200 OK et un objet profilePhoto dans le corps de la réponse.

Exemples

Exemple 1 : obtenir la photo de l’utilisateur connecté, au plus grand format disponible

Demande

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

Réponse

Contient les données binaires de la photo demandée. Le code de la réponse HTTP est 200.

Exemple 2: Cette demande obtient la photo 48 x 48 pour l’utilisateur connecté.

Demande

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

Réponse

Contient les données binaires de la photo 48x48 demandée. Le code de la réponse HTTP est 200.

Exemple 3: Cette requête obtient les métadonnées de la photo de l’utilisateur connecté.

Demande

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

Réponse

Les données de la réponse suivante indiquent les métadonnées de la photo.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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
}

Les données de la réponse suivante indiquent le contenu d’une réponse lorsqu’ aucune photo n’a pas encore été téléchargée pour l’utilisateur.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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
}

Utilisation des données binaires de la photo demandée

Lorsque vous utilisez le point de terminaison /photo/$value pour obtenir les données binaires d’une photo de profil, vous devez convertir les données en une chaîne en base 64 pour l’ajouter en tant que pièce jointe d’un e-mail. Voici un exemple dans JavaScript montrant comment créer un tableau que vous pouvez transmettre en tant que valeur du paramètre Attachments d’un message Outlook.

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

Consultez l’article Exemple de connexion Microsoft Graph pour Node.js pour une implémentation de cet exemple.

Si vous voulez afficher l’image sur une page web, créez un objet en mémoire à partir de l’image et faites-en la source d’un élément image.

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