管理影集

在 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
}

更改影集标题和封面照片

要更改影集标题或封面照片,请创建标识符为以下 ID 的 album update call: 并将新标题或新封面照片的媒体内容 ID 添加到影集中, 请求。您将需要使用photoslibrary.edit.appcreateddata 授权范围进行更改。

专辑标题的长度不得超过 500 个字符。封面媒体项 必须归影集所有者所有,并且属于该影集,它们将是封面 。

REST

下面是一个 PATCH 请求标头,用于更新专辑的 titlecoverPhotomediaItemId

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
}