エンリッチメントを追加する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
エンリッチメントを使用すると、Google フォトのアルバム内にある写真の構造と表示方法をアプリケーションで管理できます。テキストや場所の注釈、画像の順序やグループ化を使用してストーリーを伝え、ユーザーに追加のコンテキストを提示できます。
必要な認可スコープ
アプリによって作成されたアルバムにエンリッチメントを追加するには、photoslibrary.appendonly
スコープが必要です。スコープの詳細については、認可スコープをご覧ください。
拡充の種類
Google フォトでは、アルバムで 3 種類(テキスト、場所、地図)のエンリッチメントをサポートしています。
テキストのエンリッチメント
テキストのエンリッチメントは、アルバムに注釈を付けるために挿入できる書式なしテキストの文字列です。
場所のエンリッチメント
場所のエンリッチメントとは、場所にアノテーションを付けるために挿入できるマーカーと場所の名前です。
地図のエンリッチメント
地図のエンリッチメントは、アルバムで指定した開始地点と終了地点が挿入された地図です。
位置
メディア アイテムとアルバムのエンリッチメントを挿入するには、アルバムの位置を指定します。メディア アイテムの場合、位置は省略可能ですが、アルバムの拡充の場合は指定する必要があります。
位置を指定できるのは、メディア アイテムを作成するとき、またはエンリッチメントを追加するときのみです。アルバム内にある既存のメディア アイテムを再度整理することはできません。そのため、アイテムを追加する際に位置を設定することは重要です。
アルバムの先頭
メディア アイテムやエンリッチメント アイテムは、絶対位置としてアルバムの先頭に追加できます。
アルバムの最後
メディア アイテムやエンリッチメント アイテムは、絶対位置としてアルバムの最後に追加できます。
メディア アイテムやエンリッチメント アイテムは、アルバム内でメディア アイテムの位置より後から始まるメディア アイテムに対して追加できます。
エンリッチメント アイテムに対する相対位置
メディア アイテムやエンリッチメント アイテムは、アルバム内でエンリッチメント アイテムの後から始まる相対位置として追加できます。
アルバムにエンリッチメントを追加する
エンリッチメントは一度に 1 つ追加され、アルバム内の位置に追加する必要があります。アルバムにエンリッチメントを追加するには、albums.addEnrichment
を呼び出します。
リクエストが成功すると、エンリッチメント アイテムの id
が返されます。これは、メディア アイテムやその他のエンリッチメントを配置するために使用できます。
REST
POST リクエストの例を次に示します。
POST https://photoslibrary.googleapis.com/v1/albums/album-id:addEnrichment
Content-type: application/json
Authorization: Bearer oauth2-token
request-body
リクエストの本文は、エンリッチメント アイテムとその位置で構成されます。
{
"newEnrichmentItem": {
enrichment-to-be-added
},
"albumPosition": {
position-of-enrichment
}
レスポンスのサンプルは次のようになります。
{
"enrichmentItem": {
"id": "enrichment-item-id",
}
}
サポートされているエンリッチメント
テキストのエンリッチメント
テキストのエンリッチメントには、次の例に示すように、単一のテキスト文字列(1,000 文字以内)が含まれます。
REST
{
"text": "Text to be shown"
}
Java
// Use the NewEnrichmentItemFactory helper to create a text enrichment item
NewEnrichmentItem newEnrichmentItem =
NewEnrichmentItemFactory.createTextEnrichment("text to be shown");
PHP
$newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithText("text to be shown");
場所のエンリッチメント
場所のエンリッチメントは、任意の場所の名前と、緯度および経度の位置で構成されます。locationName
は最大 500 文字に制限されています。
REST
{
"location": {
"locationName": "Australia",
"latlng": {
"latitude": "-21.197",
"longitude": "95.821"
}
}
}
Java
// Use the NewEnrichmentItemFactory helper to create a location enrichment
// with the name, latitude, and longitude of the location
NewEnrichmentItem newEnrichmentItem =
NewEnrichmentItemFactory.createLocationEnrichment("Australia", -21.197, 95.821);
PHP
// Create a new location object and set the name, latitude, and longitude of the location
$newLocation = new Location();
$newLocation->setLocationName("Australia");
$newLocation->setLatlng((new LatLng())->setLatitude(-21.197)->setLongitude(95.821));
$newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithLocation($newLocation);
地図のエンリッチメント
地図のエンリッチメントでは 2 つの場所が表示され、それぞれが名前、緯度と経度で構成されます。場所のエンリッチメントと同様に、開始地点と destination
内の locationName
は最大 500 文字に制限されています。
REST
{
"origin": {
"locationName": "Australia",
"latlng": {
"latitude": "-21.197",
"longitude": "95.821"
}
},
"destination": {
"locationName": "San Francisco",
"latlng": {
"latitude": "37.757",
"longitude": "122.507"
}
}
}
Java
// Use the NewEnrichmentItemFactory helper to create a map enrichment item for
// an origin and a destination location
NewEnrichmentItem newEnrichmentItem = NewEnrichmentItemFactory.createMapEnrichment(
"Australia", -21.197, 95.821, // origin
"San Francisco", 37.757, 122.507 // destination
);
PHP
// Create two new location objects to create a map enrichment item
// for an origin and a destination location
$locationAustralia = new Location();
$locationAustralia->setLocationName("Australia");
$locationAustralia->setLatlng((new LatLng())->setLatitude(-21.197)->setLongitude(95.821));
$locationSanFrancisco = new Location();
$locationSanFrancisco->setLocationName("San Francisco");
$locationSanFrancisco->setLatlng((new LatLng())->setLatitude(37.757)->setLongitude(122.507));
$newEnrichmentItem =
PhotosLibraryResourceFactory::newEnrichmentItemWithMap($locationAustralia, $locationSanFrancisco);
サポートされている位置
アルバムの先頭
FIRST_IN_ALBUM
の位置は、アルバムの先頭を指します。この位置にあるアイテムは、ユーザーに最初に表示されます。
REST
{
"position": "FIRST_IN_ALBUM",
}
Java
AlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum();
PHP
$albumPosition = new AlbumPosition();
$albumPosition->setPosition(PositionType::FIRST_IN_ALBUM);
アルバムの最後
LAST_IN_ALBUM
の位置は、アルバムの最後を指します。この位置にあるアイテムは、ユーザーに最後に表示されます。
REST
{
"position": "LAST_IN_ALBUM",
}
Java
AlbumPosition albumPosition = AlbumPositionFactory.createLastInAlbum();
PHP
$albumPosition = new AlbumPosition();
$albumPosition->setPosition(PositionType::LAST_IN_ALBUM);
位置 relativeMediaItem
を指定すると、メディア アイテムに対する相対位置になります。アイテムは、指定されたメディア アイテムの後に追加されます。
REST
{
"position": "after-media-item",
"relativeMediaItemId": "media-item-id"
}
Java
AlbumPosition albumPosition = AlbumPositionFactory.createAfterMediaItem(mediaItemId);
PHP
$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterMediaItem($mediaItemId);
エンリッチメント アイテムに対する相対位置
relativeEnrichmentItemId
を指定すると、エンリッチメント アイテムに対する相対位置を参照します。アイテムは、指定されたエンリッチメント アイテムの後に追加されます。
REST
{
"position": "after-enrichment-item",
"relativeEnrichmentItemId": "enrichment-item-id"
}
Java
AlbumPosition albumPosition = AlbumPositionFactory.createAfterEnrichmentItem(enrichmentItemId);
PHP
$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterEnrichmentItem($enrichmentItemId);
エンリッチメントを変更する
現時点では、エンリッチメントを変更する方法はありません。ただし、エンリッチメントを作成してアルバムに追加すると、ユーザーは Google フォト アプリでエンリッチメントを変更できます。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-09-04 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-09-04 UTC。"],[[["\u003cp\u003eEnrichments allow you to add text, location markers, and maps to Google Photos albums for better storytelling and context.\u003c/p\u003e\n"],["\u003cp\u003eYou need the \u003ccode\u003ephotoslibrary.appendonly\u003c/code\u003e scope to use the Enrichments feature within your application.\u003c/p\u003e\n"],["\u003cp\u003eWhen adding enrichments, specify their position relative to other items or the start/end of the album.\u003c/p\u003e\n"],["\u003cp\u003eEnrichments are added one at a time using the \u003ccode\u003ealbums.addEnrichment\u003c/code\u003e API call and cannot be programmatically modified after creation.\u003c/p\u003e\n"],["\u003cp\u003eUsers can manually modify enrichments within the Google Photos app after they have been added.\u003c/p\u003e\n"]]],["Enrichments enhance Google Photos albums with text, location, or map annotations, requiring the `photoslibrary.appendonly` scope. To add an enrichment, use the `albums.addEnrichment` API call, providing the enrichment type and its position. Positions can be at the start, end, or relative to a media or enrichment item, specified by ID. Supported enrichments include text (max 1000 characters), location (name and coordinates), and maps (origin and destination locations). Enrichments are added one at a time, and the server returns its `id`. Existing enrichments cannot be modified through the API.\n"],null,["# Add enrichments\n\nEnrichments let your application control the structure and presentation of\nphotos within an album in Google Photos. They allow you to present the user\nwith additional context through text or location annotations and order/group\nimages that tell a story together.\n\nRequired authorization scope\n----------------------------\n\nAdding enrichments to app-created albums requires the `photoslibrary.appendonly`\nscope. For more information on scopes, see [Authorization\nscopes](/photos/overview/authorization).\n\nEnrichment types\n----------------\n\nGoogle Photos supports three types of enrichments in albums: text,\nlocations, and maps.\n\n### Text enrichments\n\nA text enrichment is a plain text string that can be inserted to annotate the\nalbum.\n\n### Location enrichments\n\nA location enrichment is a marker and the name of the place that can be inserted\nto annotate a location.\n\n### Map enrichments\n\nA map enrichment is a map with a specified origin and destination that can be\ninserted in the album.\n\nPositions\n---------\n\nTo insert media items and album enrichments, specify the position of the album.\nA position is optional for media items, but must be specified for album\nenrichment.\n\nA position can only be specified when [creating a media\nitem](/photos/library/guides/upload-media#creating-media-item) or adding\nenrichments. Existing media items in an album can't be reorganized, so it's\nimportant to set the position of an item when it's being added.\n\n### Start of album\n\nA media/enrichment item can be added to the start of the album as absolute\npositioning.\n\n### End of album\n\nA media/enrichment item can be added to the end of the album as absolute\npositioning.\n\n### Relative to media item\n\nA media/enrichment item can be added relative to a media item beginning after\nits position in the album.\n\n### Relative to enrichment item\n\nA media/enrichment item can be added relative to an enrichment item beginning\nafter its position in the album.\n\nAdding enrichments to album\n---------------------------\n\nEnrichments are added one at a time and must be added to a position in an album.\nTo add enrichments to an album, call\n[`albums.addEnrichment`](/photos/library/reference/rest/v1/albums/addEnrichment).\n\nIf the request is successful, it returns the `id` of the enrichment item, which\ncan be used to position media items or other enrichments. \n\n### REST\n\nHere is a POST request: \n\n```\nPOST https://photoslibrary.googleapis.com/v1/albums/album-id:addEnrichment\nContent-type: application/json\nAuthorization: Bearer oauth2-token\n\u003cvar translate=\"no\"\u003erequest-body\u003c/var\u003e\n```\n\nThe request body consists of the enrichment item and its position: \n\n```restructuredtext\n{\n \"newEnrichmentItem\": {\n enrichment-to-be-added\n },\n \"albumPosition\": {\n position-of-enrichment\n}\n```\n\nHere is a sample response: \n\n```restructuredtext\n{\n \"enrichmentItem\": {\n \"id\": \"enrichment-item-id\",\n }\n}\n```\n\nSupported enrichments\n---------------------\n\n### Text enrichments\n\nText enrichments contain a single text string (no more than 1000 characters), as\nshown in the following example: \n\n### REST\n\n```restructuredtext\n{\n \"text\": \"Text to be shown\"\n}\n```\n\n### Java\n\n```java\n// Use the NewEnrichmentItemFactory helper to create a text enrichment item\nNewEnrichmentItem newEnrichmentItem =\n NewEnrichmentItemFactory.createTextEnrichment(\"text to be shown\");\n```\n\n### PHP\n\n```php\n$newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithText(\"text to be shown\");\n```\n\n### Location enrichments\n\nLocation enrichments consist of an arbitrary location name and the latitude and\nlongitude position. The `locationName` is limited to 500 characters. \n\n### REST\n\n```restructuredtext\n{\n \"location\": {\n \"locationName\": \"Australia\",\n \"latlng\": {\n \"latitude\": \"-21.197\",\n \"longitude\": \"95.821\"\n }\n }\n}\n```\n\n### Java\n\n```java\n// Use the NewEnrichmentItemFactory helper to create a location enrichment\n// with the name, latitude, and longitude of the location\nNewEnrichmentItem newEnrichmentItem =\n NewEnrichmentItemFactory.createLocationEnrichment(\"Australia\", -21.197, 95.821);\n```\n\n### PHP\n\n```php\n// Create a new location object and set the name, latitude, and longitude of the location\n$newLocation = new Location();\n$newLocation-\u003esetLocationName(\"Australia\");\n$newLocation-\u003esetLatlng((new LatLng())-\u003esetLatitude(-21.197)-\u003esetLongitude(95.821));\n\n$newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithLocation($newLocation);\n```\n\n### Map enrichments\n\nMap enrichments show two locations, each consisting of a name and the latitude\nand longitude. Similar to the location enrichment, the `locationName` within the\norigin and `destination` is limited to 500 characters. \n\n### REST\n\n```restructuredtext\n{\n \"origin\": {\n \"locationName\": \"Australia\",\n \"latlng\": {\n \"latitude\": \"-21.197\",\n \"longitude\": \"95.821\"\n }\n },\n \"destination\": {\n \"locationName\": \"San Francisco\",\n \"latlng\": {\n \"latitude\": \"37.757\",\n \"longitude\": \"122.507\"\n }\n }\n}\n```\n\n### Java\n\n```java\n// Use the NewEnrichmentItemFactory helper to create a map enrichment item for\n// an origin and a destination location\nNewEnrichmentItem newEnrichmentItem = NewEnrichmentItemFactory.createMapEnrichment(\n \"Australia\", -21.197, 95.821, // origin\n \"San Francisco\", 37.757, 122.507 // destination\n);\n```\n\n### PHP\n\n```php\n// Create two new location objects to create a map enrichment item\n// for an origin and a destination location\n$locationAustralia = new Location();\n$locationAustralia-\u003esetLocationName(\"Australia\");\n$locationAustralia-\u003esetLatlng((new LatLng())-\u003esetLatitude(-21.197)-\u003esetLongitude(95.821));\n\n$locationSanFrancisco = new Location();\n$locationSanFrancisco-\u003esetLocationName(\"San Francisco\");\n$locationSanFrancisco-\u003esetLatlng((new LatLng())-\u003esetLatitude(37.757)-\u003esetLongitude(122.507));\n\n$newEnrichmentItem =\n PhotosLibraryResourceFactory::newEnrichmentItemWithMap($locationAustralia, $locationSanFrancisco);\n```\n\nSupported positioning\n---------------------\n\n### Start of album\n\nThe position `FIRST_IN_ALBUM` refers to the start of the album. Items located\nhere are shown to the user first: \n\n### REST\n\n```restructuredtext\n{\n \"position\": \"FIRST_IN_ALBUM\",\n}\n```\n\n### Java\n\n```java\nAlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum();\n```\n\n### PHP\n\n```php\n$albumPosition = new AlbumPosition();\n$albumPosition-\u003esetPosition(PositionType::FIRST_IN_ALBUM);\n```\n\n### End of album\n\nThe position `LAST_IN_ALBUM` refers to the end of the album. Items located here\nare shown to the user last. \n\n### REST\n\n```restructuredtext\n{\n \"position\": \"LAST_IN_ALBUM\",\n}\n```\n\n### Java\n\n```java\nAlbumPosition albumPosition = AlbumPositionFactory.createLastInAlbum();\n```\n\n### PHP\n\n```php\n$albumPosition = new AlbumPosition();\n$albumPosition-\u003esetPosition(PositionType::LAST_IN_ALBUM);\n```\n\n### Relative to media item\n\nSpecifying the position `relativeMediaItem` refers to a position relative to a\nmedia item. The items are added after the specified media item. \n\n### REST\n\n```restructuredtext\n{\n \"position\": \"after-media-item\",\n \"relativeMediaItemId\": \"media-item-id\"\n}\n```\n\n### Java\n\n```java\nAlbumPosition albumPosition = AlbumPositionFactory.createAfterMediaItem(mediaItemId);\n```\n\n### PHP\n\n```php\n$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterMediaItem($mediaItemId);\n```\n\n### Relative to enrichment item\n\nSpecifying a `relativeEnrichmentItemId` refers to a position relative to an\nenrichment item. The items are added after the specified enrichment item. \n\n### REST\n\n```restructuredtext\n{\n \"position\": \"after-enrichment-item\",\n \"relativeEnrichmentItemId\": \"enrichment-item-id\"\n}\n```\n\n### Java\n\n```java\nAlbumPosition albumPosition = AlbumPositionFactory.createAfterEnrichmentItem(enrichmentItemId);\n```\n\n### PHP\n\n```php\n$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterEnrichmentItem($enrichmentItemId);\n```\n\nModifying enrichments\n---------------------\n\nCurrently, there is no way to modify enrichments. However, once an enrichment\nhas been created and added to an album, the user can modify the enrichments\nthrough the Google Photos app."]]