您目前查看的是 Google Photos Library API 的舊版說明文件。
新增充實內容
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
強化功能可讓應用程式控制
Google 相簿的相簿內的相片。這能讓您
例如文字或地點註解,以及順序/群組來補充背景資訊
可以將故事設為故事內容的圖片
必要的授權範圍
至少須設定下列其中一個範圍,才能新增擴充功能:
photoslibrary.appendonly
photoslibrary.library
photoslibrary.sharing
針對每個範圍,enrichAlbum
呼叫僅限於建立的相簿
。
使用 .sharing
範圍時,enrichAlbum
只能在特定情況下使用
開發人員的代理人。
充實類型
Google 相簿支援在相簿中使用三種充實功能:文字、
位置和地圖。
文字擴充
文字擴充是一種純文字字串,可插入以註解
專輯
地點詳細資訊
地點擴充資訊是標記和可插入的地點名稱
即可為地點加上註解
地圖充實內容
地圖擴充資料是指定起點和目的地的地圖
已插入相簿。
位置
如要插入媒體項目和相簿擴充項目,請指定相簿位置。
您可以為媒體項目選擇位置,但必須為相簿指定位置
以便快速擷取
只有在下列情況中,才能指定位置:
建立媒體項目
或新增擴充項目您無法重新整理相簿中現有的媒體項目,因此
請務必在項目新增時設定項目的位置。
相簿開頭
您可在相簿開頭加入媒體/充實項目做為絕對大小
位置。
專輯結束時
媒體/充實項目會以絕對檔案的形式新增到相簿末端
位置。
您可以在
相片在相簿中的位置。
相對於豐富項目
可根據擴充項目開頭新增媒體/充實項目
。
在相簿中加入擴充功能
系統一次會新增一個多元化作品,且您必須將這些圖層新增至相簿的位置上。
如要在相簿中加入充實功能,請呼叫
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",
}
}
Java
try {
// Create the enrichment using the NewEnrichmentItemFactory helper
NewEnrichmentItem newEnrichmentItem = NewEnrichmentItemFactory.createTextEnrichment("");
// Set the position of the enrichment within the album
AlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum();
// To add an enrichment, specify the album, the enrichment item,
// and the position in the album where the enrichment is to be added
AddEnrichmentToAlbumResponse response = photosLibraryClient
.addEnrichmentToAlbum(albumId, newEnrichmentItem, albumPosition);
// The response contains an EnrichmentItem
// whose ID can be used to position media items or other enrichments
EnrichmentItem enrichmentItem = response.getEnrichmentItem();
String itemId = enrichmentItem.getId();
} catch (ApiException e) {
// Handle error
}
PHP
// Create the enrichment item using the PhotosLibraryResourceFactory helper
$newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithText("");
// ...
// Set the position of the enrichment within the album
$position = new AlbumPosition();
// ...
try {
// To add an enrichment, specify the album, the enrichment item,
// and the position in the album where the enrichment is to be added
$response = $photosLibraryClient->addEnrichmentToAlbum($albumId, $newEnrichmentItem, $position);
// The response contains an EnrichmentItem
// whose ID can be used to position media items or other enrichments
$enrichmentItem = $response->getEnrichmentItem();
$itemId = $enrichmentItem->getId();
} catch (\Google\ApiCore\ApiException $e) {
// Handle error
}
支援的擴充功能
文字擴充
文字擴充包含單一文字字串 (不得超過 1000 個字元),例如
如以下範例所示:
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);
地圖充實內容
地圖充實內容會顯示兩個地點,每個地點都含有名稱和緯度
和經度與位置擴充類似,中 locationName
來源,destination
不得超過 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 相簿應用程式開啟相簿。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-04 (世界標準時間)。
[null,null,["上次更新時間:2025-09-04 (世界標準時間)。"],[[["\u003cp\u003eEnrichments give your application control over the structure and presentation of photos within Google Photos albums by adding context through annotations and ordering.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Photos supports three types of enrichments: text, locations (markers with place names), and maps (showing an origin and destination).\u003c/p\u003e\n"],["\u003cp\u003eWhen adding enrichments, you must specify their position in the album, which can be at the start, end, or relative to an existing media or enrichment item.\u003c/p\u003e\n"],["\u003cp\u003eEnrichments are added individually using the \u003ccode\u003ealbums.addEnrichment\u003c/code\u003e call, requiring specific authorization scopes.\u003c/p\u003e\n"],["\u003cp\u003eAlthough enrichments can't be modified programmatically, users can edit them directly through the Google Photos app.\u003c/p\u003e\n"]]],["Enrichments allow control over photo presentation in Google Photos albums by adding context and organizing images. Three enrichment types are supported: text, location, and map. Adding enrichments requires specific authorization scopes and is restricted to albums the app created. Enrichments are added one at a time via `albums.addEnrichment`, specifying the enrichment item and its position within the album. Positions can be at the start or end of the album, or relative to media or other enrichment items. The enrichment item ID returned can be used to position items.\n"],null,["Enrichments 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\nTo add enrichments, at least one of the following scopes is required:\n\n- `photoslibrary.appendonly`\n- `photoslibrary.library`\n- `photoslibrary.sharing`\n\nFor each scope, the `enrichAlbum` call is restricted to only the albums created\nby the app.\n\nWhen using the `.sharing` scope, `enrichAlbum` is restricted to circumstances\nwhere the developer is acting on behalf of the owner of the shared album.\n\nEnrichment types\n\nGoogle Photos supports three types of enrichments in albums: text,\nlocations, and maps.\n\nText enrichments\n\nA text enrichment is a plain text string that can be inserted to annotate the\nalbum.\n\nLocation enrichments\n\nA location enrichment is a marker and the name of the place that can be inserted\nto annotate a location.\n\nMap enrichments\n\nA map enrichment is a map with a specified origin and destination that can be\ninserted in the album.\n\nPositions\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\n[creating a media item](/photos/library/guides/upload-media#creating-media-item)\nor adding enrichments. Existing media items in an album can't be reorganized, so\nit's important to set the position of an item when it's being added.\n\nStart of album\n\nA media/enrichment item can be added to the start of the album as absolute\npositioning.\n\nEnd of album\n\nA media/enrichment item can be added to the end of the album as absolute\npositioning.\n\nRelative to media item\n\nA media/enrichment item can be added relative to a media item beginning after\nits position in the album.\n\nRelative 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\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/legacy/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\nREST\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\nJava \n\n```java\ntry {\n // Create the enrichment using the NewEnrichmentItemFactory helper\n NewEnrichmentItem newEnrichmentItem = NewEnrichmentItemFactory.createTextEnrichment(\"\");\n\n // Set the position of the enrichment within the album\n AlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum();\n\n // To add an enrichment, specify the album, the enrichment item,\n // and the position in the album where the enrichment is to be added\n AddEnrichmentToAlbumResponse response = photosLibraryClient\n .addEnrichmentToAlbum(albumId, newEnrichmentItem, albumPosition);\n // The response contains an EnrichmentItem\n // whose ID can be used to position media items or other enrichments\n EnrichmentItem enrichmentItem = response.getEnrichmentItem();\n String itemId = enrichmentItem.getId();\n} catch (ApiException e) {\n // Handle error\n}\n```\n\nPHP \n\n```php\n// Create the enrichment item using the PhotosLibraryResourceFactory helper\n$newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithText(\"\");\n// ...\n// Set the position of the enrichment within the album\n$position = new AlbumPosition();\n// ...\ntry {\n // To add an enrichment, specify the album, the enrichment item,\n // and the position in the album where the enrichment is to be added\n $response = $photosLibraryClient-\u003eaddEnrichmentToAlbum($albumId, $newEnrichmentItem, $position);\n // The response contains an EnrichmentItem\n // whose ID can be used to position media items or other enrichments\n $enrichmentItem = $response-\u003egetEnrichmentItem();\n $itemId = $enrichmentItem-\u003egetId();\n\n} catch (\\Google\\ApiCore\\ApiException $e) {\n // Handle error\n}\n```\n\nSupported enrichments\n\nText enrichments\n\nText enrichments contain a single text string (no more than 1000 characters), as\nshown in the following example: \n\nREST \n\n```restructuredtext\n{\n \"text\": \"Text to be shown\"\n}\n```\n\nJava \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\nPHP \n\n```php\n$newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithText(\"text to be shown\");\n```\n\nLocation enrichments\n\nLocation enrichments consist of an arbitrary location name and the latitude and\nlongitude position. The `locationName` is limited to 500 characters. \n\nREST \n\n```restructuredtext\n{\n \"location\": {\n \"locationName\": \"Australia\",\n \"latlng\": {\n \"latitude\": \"-21.197\",\n \"longitude\": \"95.821\"\n }\n }\n}\n```\n\nJava \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\nPHP \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\nMap 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\nREST \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\nJava \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\nPHP \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\nStart 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\nREST \n\n```restructuredtext\n{\n \"position\": \"FIRST_IN_ALBUM\",\n}\n```\n\nJava \n\n```java\nAlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum();\n```\n\nPHP \n\n```php\n$albumPosition = new AlbumPosition();\n$albumPosition-\u003esetPosition(PositionType::FIRST_IN_ALBUM);\n```\n\nEnd 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\nREST \n\n```restructuredtext\n{\n \"position\": \"LAST_IN_ALBUM\",\n}\n```\n\nJava \n\n```java\nAlbumPosition albumPosition = AlbumPositionFactory.createLastInAlbum();\n```\n\nPHP \n\n```php\n$albumPosition = new AlbumPosition();\n$albumPosition-\u003esetPosition(PositionType::LAST_IN_ALBUM);\n```\n\nRelative 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\nREST \n\n```restructuredtext\n{\n \"position\": \"after-media-item\",\n \"relativeMediaItemId\": \"media-item-id\"\n}\n```\n\nJava \n\n```java\nAlbumPosition albumPosition = AlbumPositionFactory.createAfterMediaItem(mediaItemId);\n```\n\nPHP \n\n```php\n$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterMediaItem($mediaItemId);\n```\n\nRelative 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\nREST \n\n```restructuredtext\n{\n \"position\": \"after-enrichment-item\",\n \"relativeEnrichmentItemId\": \"enrichment-item-id\"\n}\n```\n\nJava \n\n```java\nAlbumPosition albumPosition = AlbumPositionFactory.createAfterEnrichmentItem(enrichmentItemId);\n```\n\nPHP \n\n```php\n$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterEnrichmentItem($enrichmentItemId);\n```\n\nModifying enrichments\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."]]