Quản lý album

Trong Google Photos, bạn có thể sắp xếp ảnh và các mục nội dung nghe nhìn khác bằng album. Một mục nội dung nghe nhìn có thể liên kết với một hoặc nhiều album. Để bắt đầu liên kết các mục nội dung nghe nhìn với một album, trước tiên, bạn cần tạo album đó.

Phạm vi uỷ quyền bắt buộc

Bạn cần có phạm vi photoslibrary.appendonly để tạo album.

Bạn cần có phạm vi photoslibrary.edit.appcreateddata để thay đổi tiêu đề hoặc ảnh bìa của album sau khi tạo.

Để biết thêm thông tin về phạm vi, hãy xem phần Phạm vi uỷ quyền.

Tạo album mới

Để tạo một album, hãy gọi albums.create và thêm title. Xin lưu ý rằng title bị giới hạn ở 500 ký tự.

Lệnh gọi này trả về một đĩa nhạc. Ứng dụng của bạn có thể lưu trữ mã nhận dạng album từ thông tin này và sử dụng mã nhận dạng đó để tải các mục nội dung nghe nhìn lên album cụ thể.

REST

Dưới đây là tiêu đề của yêu cầu POST:

POST https://photoslibrary.googleapis.com/v1/albums
Content-type: application/json
Authorization: Bearer oauth2-token

Nội dung yêu cầu có dạng như sau:

{
  "album": {
    "title": "new-album-title"
  }
}

Nếu thành công, phản hồi sẽ trả về một đĩa nhạc:

{
  "productUrl": "album-product-url",
  "id": "album-id",
  "title": "album-title",
  "isWriteable": "whether-you-can-write-to-this-album"
}

Truy xuất thông tin chi tiết về album

Để truy xuất thông tin chi tiết về một album hiện có do ứng dụng của bạn tạo, hãy gọi albums.get và thêm albumId của album mà bạn muốn tìm nạp.

Cuộc gọi trả về một album.

REST

Dưới đây là tiêu đề của một yêu cầu GET:

GET https://photoslibrary.googleapis.com/v1/albums/{albumId}
Content-type: application/json
Authorization: Bearer oauth2-token

Nội dung yêu cầu có dạng như sau:

{
  "albumId": album-id
}

Nếu thành công, phản hồi sẽ trả về một đĩa nhạc:

{
  "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
}

Thay đổi tiêu đề và ảnh bìa của album

Để thay đổi tiêu đề hoặc ảnh bìa của album, hãy tạo một album update call có giá trị nhận dạng của album và thêm tiêu đề mới hoặc mã mục nội dung nghe nhìn của ảnh bìa mới vào yêu cầu. Bạn cần sử dụng phạm vi uỷ quyền photoslibrary.edit.appcreateddata để thực hiện thay đổi.

Tiêu đề đĩa nhạc không được dài quá 500 ký tự. Các mục nội dung nghe nhìn dùng làm ảnh bìa phải thuộc quyền sở hữu của chủ sở hữu album và thuộc về album mà chúng sẽ làm ảnh bìa.

REST

Sau đây là tiêu đề yêu cầu PATCH để cập nhật titlecoverPhotomediaItemId của một đĩa nhạc.

PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId

Yêu cầu này xác định những thuộc tính đang được cập nhật bằng cách bao gồm một mặt nạ trường, được biểu thị bằng các tham số updateMask trong URL. Bạn cần chuyển tham số updateMask cho từng thuộc tính album đang cập nhật.

Đối với mỗi cơ sở lưu trú mà bạn đang cập nhật, hãy thêm thông tin chi tiết của cơ sở lưu trú đó vào nội dung của yêu cầu:

{
  "title": "new-album-title",
  "coverPhotoMediaItemId": "new-cover-media-item-id"
}

Nếu thành công, phản hồi sẽ trả về thông tin chi tiết về album đã cập nhật:

{
  "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"
}

Thêm mục nội dung nghe nhìn vào album

Bạn có thể thêm các mục nội dung nghe nhìn do ứng dụng tạo vào các album do ứng dụng tạo bằng cách gọi albums.batchAddMediaItems. Các mục nội dung nghe nhìn sẽ được thêm vào cuối album theo thứ tự được cung cấp trong lệnh gọi này.

Toàn bộ yêu cầu sẽ không thành công nếu một mục nội dung nghe nhìn hoặc album không hợp lệ được chỉ định. Không hỗ trợ thành công một phần.

Mỗi album có thể chứa tối đa 20.000 mục nội dung nghe nhìn. Các yêu cầu thêm các mục khác vượt quá giới hạn này sẽ không thành công.

Để thêm các mục nội dung nghe nhìn vào một album, hãy gọi albums.batchAddMediaItems với giá trị nhận dạng của các mục nội dung nghe nhìn và album.

REST

Dưới đây là tiêu đề của yêu cầu POST:

POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems
Content-type: application/json
Authorization: Bearer oauth2-token

Nội dung yêu cầu có dạng như sau:

{
   "mediaItemIds": [
     "media-item-id",
     "another-media-item-id",
     ...
   ]
}

Nếu thành công, phản hồi sẽ trả về một phản hồi JSON trống và trạng thái Thành công HTTP.

Xoá mục nội dung nghe nhìn khỏi album

Bạn có thể xoá các mục nội dung nghe nhìn do ứng dụng của bạn tạo vào các album do ứng dụng của bạn tạo bằng cách gọi albums.batchRemoveMediaItems.

Toàn bộ yêu cầu sẽ không thành công nếu bạn chỉ định các mục nội dung nghe nhìn không hợp lệ. Chúng tôi không hỗ trợ nếu thành công một phần.

Để xoá các mục nội dung nghe nhìn khỏi một album, hãy gọi albums.batchRemoveMediaItems bằng giá trị nhận dạng của các mục nội dung nghe nhìn và album.

REST

Dưới đây là tiêu đề của yêu cầu POST:

POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems
Content-type: application/json
Authorization: Bearer oauth2-token

Nội dung yêu cầu có dạng như sau:

{
   "mediaItemIds": [
     "media-item-id",
     "another-media-item-id",
     ...
   ]
}

Nếu thành công, phản hồi sẽ trả về một phản hồi JSON trống và trạng thái Thành công 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
}