ProfilePhoto を取得する

名前空間: microsoft.graph

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

Office 365 上でサポートされている HD Photo のサイズは次のとおりです: 48x48、64x64、96x96、120x120、240x240、360x360、432x432、504x504、648x648。 写真は、Microsoft Entra IDに保存されている場合は任意の次元にすることができます。

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

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

次の表は、サポートされている各リソースの種類でこの API を呼び出すために必要な最小特権のアクセス許可またはアクセス許可を示しています。 ベスト プラクティスに従って、最小限の特権のアクセス許可を要求します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「 アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、 アクセス許可のリファレンスを参照してください

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

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

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

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

チームのプロフィール写真を取得するには

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

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

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

注:

  • メタデータ操作は、個人の Microsoft アカウントではサポートされていません。
  • アプリケーションのアクセス許可のみを持つアプリは、グループの写真にアクセスできません。
  • 現在、Azure AD B2C テナントでは、Microsoft Graph APIを使用したユーザーの写真の取得はサポートされていません。

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 /team/{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 /team/{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。 写真は、Microsoft Entra IDに保存されている場合は任意の次元にすることができます。

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

このメソッドは、応答をカスタマイズするための 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 です。

HTTP/1.1 200 OK

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

要求

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

注:

出力写真の固定サイズを確保するには、使用可能な最大の写真を提供する既定の写真エンドポイント (/写真) に依存するのではなく、固定サイズの写真 (/写真) 用の専用エンドポイントを使用します。

応答

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

HTTP/1.1 200 OK

例 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
}

例 4: チーム写真のメタデータを取得する

要求

次の例は、チーム写真のメタデータを取得する要求を示しています。

GET https://graph.microsoft.com/v1.0/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo

応答

次の例は応答を示しています。

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

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams('172b0cce-e65d-44ce-9a49-91d9f2e8491e')/photo/$entity",
    "@odata.id": "https://graph.microsoft.com/v1.0/teams('172b0cce-e65d-44ce-9a49-91d9f2e8491e')/photo",
    "@odata.mediaContentType": "image/jpeg",
    "@odata.mediaEtag": "\"BA09D118\"",
    "id": "240X240",
    "width": 240,
    "height": 240
}

例 5: チーム写真のバイナリ データを取得する

次の例は、チーム写真のバイナリ データを取得する要求を示しています。

要求

GET https://graph.microsoft.com/v1.0/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo/$value

応答

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

HTTP/1.1 200 OK

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

エンドポイントを/photo/$value使用してプロフィール写真のバイナリ データを取得する場合は、データを base-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);