2012-09-18 7 views
12

Abbiamo un sistema che si integrerà in qualche modo con Office 365 e vorremmo utilizzare l'immagine del profilo impostata dall'utente nel sistema Office 365, piuttosto che memorizzare noi stessi questa immagine/riferimento. Tuttavia, non riesco a trovare alcun modo per accedere a questa immagine (ad esempio tramite un indirizzo email) da Office 365.Office 365 profile avatar picture

Per dirla in altro modo, Office 365 è in grado di servire l'immagine del profilo dell'utente in un modo simile a Gravatar?

+0

Qual è il sistema e come intende connettersi a Office 365 e che tipo di gestione delle identità avete per il vostro ambiente? Sei completamente nel cloud o hai un AD locale e ADFS impostato? –

risposta

2

È possibile utilizzare l'API grafico per vedere la scheda Entità utente, che ha la foto del profilo

http://msdn.microsoft.com/en-us/library/hh974483.aspx - vedi thumbnailPhoto campo.

per il riposo informazioni API: http://msdn.microsoft.com/en-us/library/hh974478.aspx

+0

Assicurati di evitare le risposte al solo collegamento in quanto potrebbero essere eliminate nel tempo. Prendi in considerazione, invece, di aggiungere del codice o delle spiegazioni. Grazie. – Tanmay

6

È inoltre possibile utilizzare l'API Unified Office365 (Anteprima) https://msdn.microsoft.com/office/office365/APi/photo-rest-operations

e utilizzare come codificato Base64 immagine. Si prega di prestare attenzione all'API modificata dall'ultimo aggiornamento.

Ecco il mio codice:

HttpClient client = new HttpClient(); 
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, 
     "https://outlook.office.com/api/beta/me/photos('96x96')/$value"); 
     request.Headers.Add("ACCEPT", "image/*"); 
     request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken); 
     HttpResponseMessage response = await client.SendAsync(request); 
     byte[] byteArray = await response.Content.ReadAsByteArrayAsync(); 

     string base64ImageRepresentation = Convert.ToBase64String(byteArray); 

     if (!response.IsSuccessStatusCode && response.StatusCode >= HttpStatusCode.BadRequest) 
     { 
      return string.Empty; 
     } 

     return base64ImageRepresentation; 
+0

Oh il post è del 2012 :) ma forse qualcuno ha bisogno delle informazioni – sergej