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 mục nội dung nghe nhìn với album, trước tiên, bạn cần tạo album.

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

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

  • 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 album, hãy gọi albums.create và bao gồm title. Lưu ý: title chỉ được phép có tối đa 500 ký tự.

Cuộc gọi trả về một album. Ứng dụng của bạn có thể lưu trữ ID anbom từ thông tin này và sử dụng nó cho tải các mục nội dung đa phương tiện lên đối với 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 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 đĩa nhạc:

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

PHP

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 một album update call bằng giá trị nhận dạng của anbom và bao gồm tên mới hoặc ảnh bìa mới mã mục nội dung đa phương tiện trong yêu cầu. Bạn sẽ cần sử dụng photoslibrary.edit.appcreateddata uỷ quyền để thực hiện thay đổi.

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

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 title của một album và coverPhotomediaItemId

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

Yêu cầu này xác định những cơ sở lưu trú sẽ được cập nhật bằng cách cung cấp một mặt nạ trường, được biểu thị bằng các tham số updateMask trong URL. Bạn cần truyền tham số updateMask cho mỗi giao dịch thuộc tính anbom đang được cập nhật.

Đối với mỗi tài sản mà bạn đang cập nhật, hãy thêm thông tin chi tiết về tài sản đó trong 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ề album đã cập nhật chi tiế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"
}

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
}

PHP

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 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 album bằng cách đang 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ự đã 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. Chúng tôi không hỗ trợ nếu 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 các mục khác vượt quá giới hạn này thì đều sẽ không thành công.

Xin lưu ý rằng bạn chỉ có thể thêm mục nội dung nghe nhìn đã được được ứng dụng của bạn tải lên những anbom mà ứng dụng của bạn có tạo. Mục nội dung nghe nhì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ẻ, chúng phải: thuộc sở hữu của người dùng hoặc người dùng phải là cộng tác viên đã tham gia album.

Để thêm các mục nội dung nghe nhìn vào album, hãy gọi albums.batchAddMediaItems bằng 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 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à HTTP Trạng thái 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
}

PHP

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
}

Đang 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à bạn đã 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 đa phương tiện không hợp lệ. Từng phần không hỗ trợ thành công.

Xin lưu ý rằng bạn chỉ có thể xoá các mục nội dung nghe nhìn mà ứng dụng của bạn đã thêm vào album hoặc đã được tạo trong anbom trong khuôn khổ của tải lên. Cho album được chia sẻ, bạn chỉ có thể xoá các mục do các cộng tác viên khác thêm nếu bạn đang hành động thay mặt cho chủ sở hữu trong đĩa nhạc.

Để xoá mục nội dung nghe nhìn khỏi album, hãy gọi albums.batchRemoveMediaItems bằng 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 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à HTTP Trạng thái 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
}

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
}