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. Bạn có thể liên kết một mục nội dung nghe nhìn 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

Để tạo một album, ứng dụng của bạn phải yêu cầu ít nhất một trong các phạm vi uỷ quyền sau đây:

  • photoslibrary.appendonly
  • photoslibrary.sharing

Để thay đổi tiêu đề hoặc ảnh bìa của album sau khi tạo, hãy sử dụng phạm vi photoslibrary.edit.appcreateddata.

Tạo album mới

Để tạo một album, hãy gọi albums.create và đưa title vào. Hãy lưu ý rằng title được giới hạn trong 500 ký tự.

Lệnh gọi 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ã đó để tải các mục nội dung nghe nhìn lên album cụ thể.

Kiến trúc chuyển trạng thái đại diện (REST)

Dưới đây là tiêu đề của một 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 sẽ 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 album:

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

Java

try {
  Album createdAlbum = photosLibraryClient.createAlbum("My Album");
  // The createdAlbum object contains properties of an album
  String productUrl = createdAlbum.getProductUrl();
  // coverPhotoBaseUrl shouldn't be used as is. Append parameters to base URLs before use
  String albumCoverImage = createdAlbum.getCoverPhotoBaseUrl() + "=w2048-h1024";
  boolean isWriteable = createdAlbum.getIsWriteable();
} catch (ApiException e) {
  // Handle error
}

1.199

try {
    $newAlbum = PhotosLibraryResourceFactory::album("My Album");
    $createdAlbum = $photosLibraryClient->createAlbum($newAlbum);
    // The createdAlbum object contains properties of an album
    $albumId = $createdAlbum->getId();
    $productUrl = $createdAlbum->getProductUrl();
    // coverPhotoBaseUrl shouldn't be used as is. Append parameters to base URLs before use
    $albumCoverImage = $createdAlbum->getCoverPhotoBaseUrl() . '=w2048-h1024';
    $isWriteable = $createdAlbum->getIsWriteable();
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

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

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

Tiêu đề album không được dài quá 500 ký tự. Các mục bìa nội dung đa phương tiện phải thuộc sở hữu của chủ sở hữu album và thuộc album mà ảnh bìa của album đó.

Kiến trúc chuyển trạng thái đại diện (REST)

Đây là tiêu đề của yêu cầu PATCH để cập nhật titlecoverPhotomediaItemId của album.

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

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

Đối với mỗi thuộc tính bạn đang cập nhật, hãy đưa thông tin về thuộc tính đó vào phần 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 đã cập nhật về 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"
}

Java

try {
  // Update the cover photo of the album given a MediaItem object.
  Album updatedAlbum = photosLibraryClient.updateAlbumCoverPhoto(album, newCoverMediaItem);

  // Alternatively, you can update the cover photo of the album given a media item ID.
  // The specified media item identifier must be not null or empty.
  // Album updatedAlbum = photosLibraryClient.updateAlbumCoverPhoto(album, "new-cover-media-item-id");
} catch (ApiException e) {
  // Handle error
}
try {
  // Update the title of the album.
  // The new title must not be null or empty.
  Album updatedAlbum = photosLibraryClient.updateAlbumTitle(album, "new-album-title");
} catch (ApiException e) {
  // Handle error
}

1.199

try {

    // ID of the album to update.
    $albumId = "ALBUM_ID";

    // Media item ID of the new cover photo.
    // Must not be null or empty.
    $newCoverMediaItemId = "new-cover-media-item-id";

    // Update the cover photo of the album.
    $mediaItem = $photosLibraryClient->updateAlbumCoverPhoto($albumId, $newCoverMediaItemId);

} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}
try {

    // ID of the album to update.
    $albumId = "ALBUM_ID";

    // New title of the album.
    // Must not be null or empty.
    $newTitle = "new-album-title";

    // Update the title of the album.
    $mediaItem = $photosLibraryClient->updateAlbumTitle($albumId, $newTitle);

} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

Thêm các 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 từ thư viện Google Photos của người dùng vào một album bằng cách gọi albums.batchAddMediaItems. Các mục nội dung đa phương tiện được thêm vào cuối album theo thứ tự đã cho trong lệnh gọi này.

Toàn bộ yêu cầu sẽ không thành công nếu bạn chỉ định một mục nội dung đa phương tiện hoặc album không hợp lệ. 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. Yêu cầu thêm mục vượt quá giới hạn này sẽ không thành công.

Xin lưu ý rằng bạn chỉ có thể thêm các mục nội dung đa phương tiện đã được ứng dụng của bạn tải lên vào album mà ứng dụng của bạn đã tạo. Các mục nội dung đa phương tiện cũng phải có trong thư viện của người dùng. Đối với các album được chia sẻ, người dùng thuộc sở hữu hoặc phải là một cộng tác viên đã tham gia album.

Để 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 đa phương tiện và album đó.

Kiến trúc chuyển trạng thái đại diện (REST)

Dưới đây là tiêu đề của một 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 sẽ 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ề phản hồi JSON trống và trạng thái HTTP thành công.

Java

try {
  // List of media item IDs to add
  List<String> mediaItemIds = Arrays
      .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID");

  // ID of the album to add media items to
  String albumId = "ALBUM_ID";

  // Add all given media items to the album
  photosLibraryClient.batchAddMediaItemsToAlbum(albumId, mediaItemIds);

} catch (ApiException e) {
  // An exception is thrown if the media items could not be added
}

1.199

try {

    // List of media item IDs to add
    $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"];

    // ID of the album to add media items to
    $albumId = "ALBUM_ID";

    // Add all given media items to the album
    $response = $photosLibraryClient->batchAddMediaItemsToAlbum($albumId, $mediaItemIds);

} catch (\Google\ApiCore\ApiException $e) {
    // Handle Error
}

Xoá các 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 mà mình đã thêm khỏi album 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ệ. Không hỗ trợ thành công một phần.

Xin lưu ý rằng bạn chỉ có thể xoá các mục nội dung đa phương tiện mà ứng dụng của bạn đã thêm vào album hoặc đã được tạo trong album trong quá trình tải lên. Đối với các album được chia sẻ, bạn chỉ có thể xoá các mục do cộng tác viên khác thêm vào nếu bạn đang hành động thay mặt cho chủ sở hữu của album đó.

Để xoá các mục nội dung nghe nhìn khỏi một album, hãy gọi albums.batchRemoveMediaItems với giá trị nhận dạng của các mục nội dung đa phương tiện và album đó.

Kiến trúc chuyển trạng thái đại diện (REST)

Dưới đây là tiêu đề của một 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 sẽ 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ề phản hồi JSON trống và trạng thái HTTP thành công.

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
}

1.199

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
}