ProfilePhoto を取得する

名前空間: microsoft.graph

重要

Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、バージョン セレクターを使用します。

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

: ユーザー の写真を取得しようとすると、まず、この操作によって Microsoft 365 から指定した写真を取得しようとします。 Microsoft 365 に利用できる写真がない場合は、API により Azure Active Directory から写真を取得しようとします。

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

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

アクセス許可

次の表は、サポートされている各リソースの種類でこの 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、Group.Read.All**、Group.ReadWrite.All**、Directory.Read.All**、Directory.ReadWrite.All**
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション TeamSettings.Read.Group* TeamSettings.ReadWrite.Group*, Team.ReadBasic.All, TeamSettings.Read.All, TeamSettings.ReadWrite.All, Group.ReadWrite.All**, Directory.Read.All**, Directory.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 /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}

パス パラメーター

パラメーター 説明
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/beta/me/photo/$value
Content-Type: image/jpg
応答

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

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

要求
GET https://graph.microsoft.com/beta/me/photos/48x48/$value
Content-Type: image/jpg
応答

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

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

要求
GET https://graph.microsoft.com/beta/me/photo
応答

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

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

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#Me/photo/$entity",
    "@odata.id": "https://graph.microsoft.com/beta/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/beta/$metadata#Me/photo/$entity",
    "@odata.id": "https://graph.microsoft.com/beta/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/beta/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo

応答

以下は、応答の例です。

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

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('172b0cce-e65d-44ce-9a49-91d9f2e8491e')/photo/$entity",
    "@odata.id": "https://graph.microsoft.com/beta/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/beta/teams/172b0cce-e65d-44ce-9a49-91d9f2e8491e/photo/$value

応答

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

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

/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);