在 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" } }
如果请求成功,则该响应将返回一个影集:
{ "productUrl": "album-product-url", "id": "album-id", "title": "album-title", "isWriteable": "whether-you-can-write-to-this-album" }
检索影集详情
如需检索应用创建的现有影集的详细信息,请调用 albums.get
并添加要提取的影集的 albumId
。
此调用将返回一个影集。
REST
以下是 GET 请求的标头:
GET https://photoslibrary.googleapis.com/v1/albums/{albumId} Content-type: application/json Authorization: Bearer oauth2-token
请求正文如下所示:
{ "albumId": album-id }
如果请求成功,则该响应将返回一个影集:
{ "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 }
更改影集标题和封面照片
如需更改影集标题或封面照片,请使用影集的标识符发出 album update
call
,并在请求中添加新标题或新封面照片的媒体内容 ID。您需要使用 photoslibrary.edit.appcreateddata
授权范围进行更改。
专辑标题的长度不得超过 500 个字符。封面媒体内容必须归影集所有者所有,并且属于它们将用作封面的影集。
REST
以下是用于更新专辑的 title
和 coverPhotomediaItemId
的 PATCH 请求标头。
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 项媒体内容。如果添加的内容超出此限制,则请求将失败。
如需将媒体内容添加到影集,请使用媒体内容标识符和影集标识符调用 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
将应用创建的媒体内容从应用创建的影集中移除。
如果指定无效的媒体内容,则整个请求都会失败。不支持部分内容请求成功。
如需从影集中移除媒体内容,请使用媒体内容标识符和影集标识符调用 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 }