在 Google 相簿中,您可以使用相簿來整理相片和其他媒體項目。媒體項目可與一或多個相簿建立關聯。如要開始將媒體項目與相簿建立關聯,請先建立相簿。
必要的授權範圍
建立相簿需要 photoslibrary.appendonly 範圍。
建立相簿後,如要變更相簿的標題或封面相片,就必須使用 photoslibrary.edit.appcreateddata 範圍。
如要進一步瞭解範圍,請參閱「授權範圍」。
建立新相簿
如要建立相簿,請呼叫 albums.create 並加入 title。請注意,title 的長度上限為 500 個半形字元。
這個呼叫會傳回專輯。應用程式可以儲存這項資訊中的相簿 ID,並用於上傳媒體項目至特定相簿。
REST
以下是 POST 要求的標頭:
POST https://photoslibrary.googleapis.com/v1/albums Content-type: application/json Authorization: Bearer oauth2-token
要求主體如下所示:
{
"album": {
"title": "new-album-title"
}
}如果成功,回應會傳回 album:
{
"productUrl": "album-product-url",
"id": "album-id",
"title": "album-title",
"isWriteable": "whether-you-can-write-to-this-album"
}擷取相簿詳細資料
如要擷取應用程式建立的現有相簿詳細資料,請呼叫 albums.get,並加入要擷取的相簿 albumId。
這個呼叫會傳回 album。
REST
以下是 GET 要求的標頭:
GET https://photoslibrary.googleapis.com/v1/albums/{albumId}
Content-type: application/json
Authorization: Bearer oauth2-token
要求主體如下所示:
{
"albumId": album-id
}如果成功,回應會傳回 album:
{
"id": album-id,
"title": album-title,
"productUrl": album-product-url,
"mediaItemsCount": media-items-count,
"coverPhotoBaseUrl": cover-photo-base-url,
"coverPhotoMediaItemId": cover-photo-media-item-id
}變更相簿標題和封面相片
如要變更相簿標題或封面相片,請使用相簿的 ID 建立 album update
call,並在要求中加入新的標題或新封面相片的媒體項目 ID。您必須使用 photoslibrary.edit.appcreateddata authorization 範圍才能進行變更。
相簿名稱長度不可超過 500 個字元。封面媒體項目擁有者必須為相簿擁有者,且屬於其封面。
REST
以下 PATCH 要求標頭可更新相簿的 title 和 coverPhotomediaItemId。
PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId
這項要求會透過網址中的 updateMask 參數,加入欄位遮罩來決定要更新哪些屬性。對於要更新的每個專輯屬性,都必須傳遞 updateMask 參數。
針對要更新的每個屬性,請在要求主體中加入詳細資料:
{
"title": "new-album-title",
"coverPhotoMediaItemId": "new-cover-media-item-id"
}如果成功,回應會傳回更新的 album 詳細資料:
{
"id": "album-id",
"title": "new-album-title",
"productUrl": "album-product-url",
"isWriteable": "true-if-user-can-write-to-this-album",
"mediaItemsCount": "number-of-media-items-in-album",
"coverPhotoBaseUrl": "cover-photo-base-url_use-only-with-parameters",
"coverPhotoMediaItemId": "new-cover-media-item-id"
}在相簿中新增媒體項目
您可以呼叫 albums.batchAddMediaItems,將應用程式建立的媒體項目新增至應用程式建立的相簿。媒體項目會依照此呼叫中指定的順序新增至相簿的結尾。
如果指定無效的媒體項目或相簿,整個要求都會失敗。系統不支援部分成功。
每個相簿最多可包含 20,000 個媒體項目。如果要求新增的項目超過此限制,系統就會失敗。
如要將媒體項目新增至相簿,請使用媒體項目和相簿的 ID 呼叫 albums.batchAddMediaItems。
REST
以下是 POST 要求的標頭:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems Content-type: application/json Authorization: Bearer oauth2-token
要求主體如下所示:
{
"mediaItemIds": [
"media-item-id",
"another-media-item-id",
...
]
}如果成功,回應會傳回空白的 JSON 回應和 HTTP 成功狀態。
從相簿中移除媒體項目
您可以呼叫 albums.batchRemoveMediaItems,將應用程式建立的媒體項目移除至應用程式建立的相簿。
如果指定無效的媒體項目,整個要求都會失敗。系統不支援部分成功。
如要從相簿中移除媒體項目,請使用媒體項目和相簿的 ID 呼叫 albums.batchRemoveMediaItems。
REST
以下是 POST 要求的標頭:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems Content-type: application/json Authorization: Bearer oauth2-token
要求主體如下所示:
{
"mediaItemIds": [
"media-item-id",
"another-media-item-id",
...
]
}如果成功,回應會傳回空白的 JSON 回應和 HTTP 成功狀態。
Java
try { // List of media item IDs to remove List<String> mediaItemIds = Arrays .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"); // ID of the album to remove media items from String albumId = "ALBUM_ID"; // Remove all given media items from the album photosLibraryClient.batchRemoveMediaItemsFromAlbum(albumId, mediaItemIds); } catch (ApiException e) { // An exception is thrown if the media items could not be removed }
PHP
try { // List of media item IDs to remove $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"]; // ID of the album to remove media items from $albumId = "ALBUM_ID"; // Remove all given media items from the album $response = $photosLibraryClient->batchRemoveMediaItemsFromAlbum($albumId, $mediaItemIds); } catch (\Google\ApiCore\ApiException $e) { // Handle Error }