15

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?

Miika L.
  • 3,333
  • 1
  • 24
  • 35
  • What is the system and how will it connect into Office 365 and what sort of identity management do you have for your environment? Are you completely in the cloud or do you have a local AD and ADFS set up? – Brock Davis Apr 05 '13 at 13:16

2 Answers2

6

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;
sergej
  • 361
  • 2
  • 7
1

You can use the Graph API to get the User Entity record, which has the profile picture

http://msdn.microsoft.com/en-us/library/hh974483.aspx - see thumbnailPhoto field.

For REST API info: http://msdn.microsoft.com/en-us/library/hh974478.aspx

Dragos Bobolea
  • 772
  • 7
  • 16
  • 1
    Please ensure that you avoid link only answers as they may be deleted over time. Consider instead, to add some code or explanations. Thank you. – Tanmay Apr 16 '16 at 09:09