Kelola album

Di Google Foto, Anda dapat mengatur foto dan item media lainnya menggunakan album. Item media dapat dikaitkan dengan satu atau beberapa album. Untuk mulai mengaitkan item media dengan album, Anda harus membuat album tersebut terlebih dahulu.

Cakupan otorisasi yang diperlukan

Untuk membuat album, aplikasi Anda harus meminta setidaknya salah satu hal berikut cakupan otorisasi:

  • photoslibrary.appendonly
  • photoslibrary.sharing

Untuk mengubah judul atau foto sampul album setelah dibuat, gunakan photoslibrary.edit.appcreateddata cakupan.

Membuat album baru

Untuk membuat album, panggil albums.create dan sertakan title. Perlu diketahui bahwa title dibatasi hingga 500 karakter.

Panggilan akan mengembalikan album. Aplikasi Anda dapat simpan ID album dari informasi ini dan gunakan untuk mengupload item media ke album tertentu.

REST

Berikut adalah header untuk permintaan POST:

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

Isi permintaan terlihat seperti ini:

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

Jika berhasil, respons akan menampilkan 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
}

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
}

Mengubah judul album dan foto sampul

Untuk mengubah judul album atau foto sampul, buat album update call dengan pengenal album, dan sertakan judul baru atau foto sampul baru. ID item media yang diminta. Anda harus menggunakan photoslibrary.edit.appcreateddata otorisasi untuk melakukan perubahan.

Judul album tidak boleh lebih dari 500 karakter. Tutupi item media harus dimiliki oleh pemilik album, dan menjadi milik album foto tersebut akan menjadi sampul untuk mereka.

REST

Berikut adalah header permintaan PATCH untuk memperbarui title album dan coverPhotomediaItemId.

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

Permintaan ini menentukan properti yang diperbarui dengan menyertakan mask kolom, yang ditunjukkan oleh parameter updateMask di . Parameter updateMask harus diteruskan untuk setiap properti album yang sedang diperbarui.

Untuk setiap properti yang Anda perbarui, sertakan detailnya di isi permintaan:

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

Jika berhasil, respons akan menampilkan album yang diperbarui detail:

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

Menambahkan item media ke album

Anda dapat menambahkan item media dari galeri Google Foto pengguna ke album dengan menelepon albums.batchAddMediaItems Item media ditambahkan ke akhir album sesuai urutan yang ditentukan dalam panggilan ini.

Seluruh permintaan akan gagal jika item media atau album yang ditentukan tidak valid. Keberhasilan sebagian tidak didukung.

Setiap album dapat berisi hingga 20.000 item media. Permintaan untuk menambahkan lebih banyak item yang akan gagal melebihi batas ini.

Perhatikan bahwa Anda hanya dapat menambahkan item media yang telah diupload oleh aplikasi Anda untuk album yang dimiliki aplikasi Anda dibuat. Item media juga harus ada di library pengguna. Untuk album yang dibagikan, album tersebut harus dimiliki oleh pengguna atau pengguna harus menjadi kolaborator yang sudah bergabung dengan album.

Untuk menambahkan item media ke album, panggil albums.batchAddMediaItems dengan ID item media dan album.

REST

Berikut adalah header untuk permintaan POST:

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

Isi permintaan terlihat seperti ini:

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

Jika berhasil, respons akan menampilkan respons JSON kosong dan HTTP Status berhasil.

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
}

Menghapus item media dari album

Anda dapat menghapus item media yang telah ditambahkan dari album dengan memanggil albums.batchRemoveMediaItems

Seluruh permintaan akan gagal jika item media yang tidak valid ditentukan. Sebagian keberhasilan tidak didukung.

Perhatikan, Anda hanya dapat menghapus item media yang digunakan aplikasi telah ditambahkan ke album atau yang telah dibuat di album sebagai bagian dari upload. Untuk album yang dibagikan, Anda hanya dapat menghapus item yang ditambahkan oleh kolaborator lain jika Anda bertindak atas nama pemilik dari album.

Untuk menghapus item media dari album, panggil albums.batchRemoveMediaItems dengan ID item media dan album.

REST

Berikut adalah header untuk permintaan POST:

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

Isi permintaan terlihat seperti ini:

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

Jika berhasil, respons akan menampilkan respons JSON kosong dan HTTP Status berhasil.

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
}