写真を取得する

名前空間: microsoft.graph

指定した profilePhoto またはそのメタデータ (profilePhoto プロパティ) を取得します。

Office 365 上でサポートされている HD Photo のサイズは次のとおりです: 48x48、64x64、96x96、120x120、240x240、360x360、432x432、504x504、648x648。 写真が Azure Active Directory に格納されている場合は、サイズに関する制限はありません。

使用可能な最大の写真のメタデータを取得したり、サイズを指定してその写真サイズのメタデータを取得したりできます。要求したサイズが使用できない場合でも、アップロードされて使用可能になっている、より小さいサイズを取得できます。たとえば、アップロードした写真が 504x504 ピクセルの場合は、648×648 を除くすべてのサイズの写真がダウンロード可能になります。

アクセス許可

この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。

ユーザーのプロファイル写真を取得するには

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校アカウント) User.Read、User.ReadBasic.All、User.Read.All、User.ReadWrite、User.ReadWrite.All
委任 (個人用 Microsoft アカウント) User.Read、User.ReadWrite
アプリケーション User.Read.All、User.ReadWrite.All

グループのプロファイル写真を取得するには

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント) Group.Read.All、Group.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。
アプリケーション Group.Read.All、Group.ReadWrite.All

連絡先のプロファイル写真を取得するには

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント) Contacts.Read、Contacts.ReadWrite
委任 (個人用 Microsoft アカウント) Contacts.Read、Contacts.ReadWrite
アプリケーション Contacts.Read、Contacts.ReadWrite

注:

  • メタデータ操作は、個人の Microsoft アカウントではサポートされていません。
  • 現在、アプリケーションのアクセス許可を使用してグループ写真にアクセスする場合に既知の問題があります。

HTTP 要求

写真を取得する

GET /me/photo/$value
GET /users/{id | userPrincipalName}/photo/$value
GET /groups/{id}/photo/$value
GET /me/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/contacts/{id}/photo/$value
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value

写真のメタデータを取得する

GET /me/photo
GET /me/photos
GET /users/{id | userPrincipalName}/photo
GET /groups/{id}/photo
GET /me/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contacts/{id}/photo
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo

特定の写真サイズのメタデータを取得する

GET /me/photos/{size}
GET /users/{id | userPrincipalName}/photos/{size}
GET /groups/{id}/photos/{size}

パス パラメーター

パラメーター 種類 説明
サイズ String 写真のサイズ。 Office 365 上でサポートされている HD Photo のサイズは次のとおりです: 48x48、64x64、96x96、120x120、240x240、360x360、432x432、504x504、648x648。 写真が Azure Active Directory に格納されている場合は、サイズに関する制限はありません。

オプションのクエリ パラメーター

このメソッドは、応答をカスタマイズするための OData クエリ パラメーターをサポートします。

要求ヘッダー

名前 種類 説明
Authorization string ベアラー {token}。必須。

要求本文

このメソッドには、要求本文を指定しません。

応答

写真の取得に対する応答

成功した場合、このメソッドは 200 OK 応答コードと、要求した写真のバイナリ データを応答本文で返します。写真が存在しない場合、この操作により 404 Not Found が返されます。

写真のメタデータの取得に対する応答

成功した場合、このメソッドは 200 OK 応答コードと、応答本文で profilePhoto オブジェクトを返します。

例 1: サインインしているユーザーの写真を利用可能な最大のサイズで取得します。

要求

GET https://graph.microsoft.com/v1.0/me/photo/$value

応答

要求した写真のバイナリ データが含まれています。HTTP 応答コードは 200 です。

例 2: サインインしているユーザーの 48x48 の写真を取得します。

要求

GET https://graph.microsoft.com/v1.0/me/photos/48x48/$value
Content-Type: image/jpg

応答

要求した 48x48 の写真のバイナリ データが含まれています。HTTP 応答コードは 200 です。

例 3: サインインしているユーザーのユーザー写真のメタデータを取得します。

要求

GET https://graph.microsoft.com/v1.0/me/photo

応答

次の応答データは、写真のメタデータを示しています。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/photo/$entity",
    "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfcd489-628b-7d04-b48b-20075df800e5@1717622f-1d94-c0d4-9d74-f907ad6677b4')/photo",
    "@odata.mediaContentType": "image/jpeg",
    "@odata.mediaEtag": "\"BA09D118\"",
    "id": "240x240",
    "width": 240,
    "height": 240
}

次の応答データは、そのユーザーの写真がまだアップロードされていないときの応答の内容を示しています。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Me/photo/$entity",
    "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfcd489-628b-7d04-b48b-20075df800e5@1717622f-1d94-c0d4-9d74-f907ad6677b4')/photo",
    "@odata.mediaContentType": "image/gif",
    "@odata.mediaEtag": "",
    "id": "1x1",
    "width": 1,
    "height": 1
}

要求した写真のバイナリ データを使用する

/photo/$value エンドポイントを使用してプロフィール写真のバイナリ データを取得するときに、そのデータを電子メールの添付ファイルとして追加するには、ベース 64 の文字列に変換する必要があります。 JavaScript で Outlook メッセージAttachments パラメーターの値として渡すことができる配列を作成する方法の例を次に示します。

const attachments = [{
  '@odata.type': '#microsoft.graph.fileAttachment',
  ContentBytes: file.toString('base64'),
  Name: 'mypic.jpg'
}];

この例の実装については、「Node.js 用の Microsoft Graph Connect サンプル」を参照してください。

Web ページにイメージを表示する場合は、イメージからメモリ内オブジェクトを作成し、そのオブジェクトをイメージ要素のソースにします。この操作の JavaScript の例を次に示します。

const url = window.URL || window.webkitURL;
const blobUrl = url.createObjectURL(image.data);
document.getElementById(imageElement).setAttribute("src", blobUrl);