1

Я хочу, чтобы иметь возможность получать все пользовательские office365 фотографий в Azure Active directory.C# как получить офис 365 пользователь фото с использованием microsoft graph api

Прямо сейчас я в состоянии получить электронную почту текущего пользователя с помощью графа SDK

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

Но я не уверен, как интегрировать the getting photos part из https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/profilephoto_get в код.

Любая помощь или пример кода приветствуются!

ответ

0

Вы получаете фотографии с помощью graphClient.Me.Photo.Content, который будет получать двоичные данные фотографии в потоке:

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

Будет ли еще быть в состоянии использовать API Microsoft Graph, если мое приложение зарегистрировано в Azure AD конечная точка? Потому что теперь я получаю сообщение о том, что мое приложение не поддерживается для этой версии api – yfan183

+0

Да. Я проверил код выше с регистрацией приложения, которую я сделал на Azure Portal, в строке '' var photo = wait graphClient.Me.Photo.Content.Request(). GetAsync(); '' запрашивает графический файл версии 1.0 API (https://graph.microsoft.com/v1.0/me/photo/$value). – RasmusW

+1

Я получаю еще одну странную ошибку: «Access Denied: Check Credentials and try again», когда я пытаюсь получить доступ к фотографии пользователя, используя 'waitait graphClient.Users [" [email protected] "]. Photo.Content.Request() .GetAsync(); 'Однако я могу использовать это, чтобы получить любую другую информацию о пользователе, такую ​​как' waitait graphClient.Users ["[email protected]"]. Запрос(). Выберите («mail»). GetAsync(); 'для получения электронной почты пользователя – yfan183