C# – Office 365 profile avatar picture

asp.net-mvccgravataroffice365

We have a system that will integrate in some ways with Office 365, and we would like to use the profile picture set by the user in the Office 365 system, rather than storing this image/reference ourselves. However, I can't find any way of accessing this image (for example via an email address) from outside Office 365.

To put it another way, is Office 365 capable of serving up the profile picture of the user in a similar way to Gravatar?

Best Answer

You can also use the Office365 Unified API (Preview) https://msdn.microsoft.com/office/office365/APi/photo-rest-operations

And use as Base64 Encoded Image. Please pay attention on the changed API since the last Update.

Here my code:

 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;
Related Topic