1

我希望能夠在Azure Active Directory中獲取所有用戶的office365照片。c#如何使用microsoft graph api獲取office 365用戶照片

現在我可以在使用圖形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 parthttps://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,如果我的應用程序在Azure的AD註冊終點?因爲現在我得到錯誤,說我的應用程序不支持此api版本 – yfan183

+0

是的。我測試了上面的代碼,我在Azure Portal中做了一個應用程序註冊,這一行'var photo = await graphClient.Me.Photo.Content.Request()。GetAsync();''請求v1.0 MS Graph API(https://graph.microsoft.com/v1.0/me/photo/$value)。 – RasmusW

+1

當我嘗試使用'await graphClient.Users [「[email protected]」]訪問用戶的照片時,出現另一個奇怪的錯誤,說'訪問被拒絕:檢查憑證並再試一次'。Photo.Content.Request ().GetAsync();'然而,我可以使用它來獲取關於用戶的其他信息,例如'await graphClient.Users [「[email protected]」]。Request()。Select(「mail」)。GetAsync ();'獲取用戶的電子郵件 – yfan183

相關問題