1

Je veux être en mesure d'obtenir toutes les photos Office365 de l'utilisateur dans le répertoire Azure Active.C# comment obtenir une photo d'utilisateur Office 365 en utilisant Microsoft API Graph

En ce moment, je suis en mesure d'obtenir l'e-mail de l'utilisateur actuel en utilisant SDK graphique

GraphServiceClient graphClient = SDKHelper.GetAuthenticatedClient(); 

public async Task<string> GetMyEmailAddress(GraphServiceClient graphClient) 
    {   
     User me = await graphClient.Me.Request().Select("mail,userPrincipalName").GetAsync(); 
     return me.Mail ?? me.UserPrincipalName; 
    } 

Mais je ne suis pas sûr de savoir comment intégrer la the getting photos part de https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/profilephoto_get dans le code. Un exemple d'aide ou de code est apprécié !!

Répondre

0

Vous obtenez la photo à l'aide graphClient.Me.Photo.Content qui récupérera les données binaires de la photo dans un cours d'eau:

public async Task GetPictureAsync() 
{ 
    GraphServiceClient graphClient = GetGraphServiceClient(); 

    var photo = await graphClient.Me.Photo.Content.Request().GetAsync(); 
    using (var fileStream = File.Create("C:\\temp\\photo.jpg")) 
    { 
     photo.Seek(0, SeekOrigin.Begin); 
     photo.CopyTo(fileStream); 
    } 
} 
+0

Vais-je être encore capable d'utiliser l'API Microsoft Graph si mon application est enregistré dans Azure AD point final Parce que maintenant je reçois une erreur disant que mon application n'est pas supportée pour cette version de l'API – yfan183

+0

Oui. J'ai testé le code ci-dessus avec une inscription d'application que j'ai faite dans le portail Azure, La ligne '' var photo = attendez graphClient.Me.Photo.Content.Request(). GetAsync(); '' demande à la v1.0 MS Graph API (https://graph.microsoft.com/v1.0/me/photo/$value). – RasmusW

+1

Je reçois une autre erreur étrange disant 'Accès refusé: Vérifiez les informations d'identification et réessayez 'lorsque j'essaie d'accéder à la photo d'un utilisateur en utilisant' await graphClient.Users ["[email protected]"]. Photo.Content.Request() .GetAsync(); 'Cependant, je peux l'utiliser pour obtenir d'autres informations concernant l'utilisateur, telles que' await graphClient.Users ["[email protected]"]. Request(). Select ("mail"). GetAsync(); 'pour obtenir l'adresse e-mail de l'utilisateur – yfan183