ProfilePhoto を取得する
名前空間: microsoft.graph
重要
Microsoft Graph の /beta
バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。
指定した profilePhoto または、Microsoft 365 のメタデータ ( profilePhoto プロパティ) を取得します。
注: ユーザー 写真を取得しようとすると、この操作は最初に Microsoft 365 から指定された写真を取得しようとします。 Microsoft 365 で写真を使用できない場合は、Microsoft Entra ID から写真を取得するための API trie。
Microsoft 365 上でサポートされている HD Photo のサイズは次のとおりです: 48x48、64x64、96x96、120x120、240x240、360x360、432x432、504x504、648x648。 写真が Microsoft Entra ID に格納されている場合は、任意のディメンションを指定できます。
使用可能な最大の写真のメタデータを取得したり、サイズを指定してその写真サイズのメタデータを取得したりできます。 要求したサイズが使用できない場合でも、ユーザーがアップロードして使用可能にしたサイズを小さくできます。 たとえば、ユーザーが 504 x 504 ピクセルの写真をアップロードした場合、648x648 写真サイズ以外はすべてダウンロードできます。 指定したサイズがユーザーのメールボックスまたは Microsoft Entra ID で使用できない場合、サイズ 1x1 がメタデータの残りの部分と共に返されます。
この API は、次の国内クラウド展開で使用できます。
グローバル サービス | 米国政府機関 L4 | 米国政府機関 L5 (DOD) | 21Vianet が運営する中国 |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
アクセス許可
次の表は、サポートされている各リソースの種類でこの API を呼び出すために必要な最小特権のアクセス許可またはアクセス許可を示しています。 ベスト プラクティスに従って、最小限の特権のアクセス許可を要求します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。
連絡先のプロファイル写真を取得するには
アクセス許可の種類 | 最小特権アクセス許可 | より高い特権のアクセス許可 |
---|---|---|
委任 (職場または学校のアカウント) | Contacts.Read | Contacts.ReadWrite |
委任 (個人用 Microsoft アカウント) | Contacts.Read | Contacts.ReadWrite |
アプリケーション | Contacts.Read | Contacts.ReadWrite |
グループのプロファイル写真を取得するには
アクセス許可の種類 | 最小特権アクセス許可 | より高い特権のアクセス許可 |
---|---|---|
委任 (職場または学校のアカウント) | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All、Group.Read.All、Group.ReadWrite.All |
委任 (個人用 Microsoft アカウント) | サポートされていません。 | サポートされていません。 |
アプリケーション | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All、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 |
ユーザーのプロファイル写真を取得するには
アクセス許可の種類 | 最小特権アクセス許可 | より高い特権のアクセス許可 |
---|---|---|
委任 (職場または学校のアカウント) | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All、User.Read、User.ReadBasic.All、User.Read.All、User.ReadWrite、User.ReadWrite.All |
委任 (個人用 Microsoft アカウント) | User.Read | User.ReadWrite |
アプリケーション | ProfilePhoto.Read.All | ProfilePhoto.ReadWrite.All、User.Read.All、User.ReadWrite.All |
注:
- 現在、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/beta/me/photo/$value
Content-Type: image/jpg
応答
要求した写真のバイナリ データが含まれています。 HTTP 応答コードは 200 です。
HTTP/1.1 200 OK
例 2: サインインしているユーザーの 48x48 の写真を取得します。
要求
次の例は要求を示しています。
GET https://graph.microsoft.com/beta/me/photos/48x48/$value
Content-Type: image/jpg
注:
- 出力写真の固定サイズを確保するには、使用可能な最大の写真 (/写真) を提供する既定の写真エンドポイントに依存するのではなく、固定サイズ (/写真) の写真の専用エンドポイントを使用します。
応答
要求した 48x48 の写真のバイナリ データが含まれています。 HTTP 応答コードは 200 です。
HTTP/1.1 200 OK
例 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 です。
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);