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 terlebih dahulu.
Cakupan otorisasi yang diperlukan
Untuk membuat album, aplikasi harus meminta setidaknya salah satu cakupan otorisasi berikut:
photoslibrary.appendonly
photoslibrary.sharing
Untuk mengubah judul atau foto sampul album setelah dibuat, gunakan
cakupan photoslibrary.edit.appcreateddata
.
Membuat album baru
Untuk membuat album, panggil
albums.create
dan sertakan
title
. Perhatikan bahwa title
dibatasi hingga 500 karakter.
Panggilan akan menampilkan album. Aplikasi Anda dapat menyimpan ID album dari informasi ini dan menggunakannya untuk mengupload item media ke album tertentu.
REST
Berikut adalah {i>header<i} 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
ID album, dan sertakan judul baru atau ID item media
foto sampul baru dalam permintaan. Anda harus menggunakan
cakupan otorisasi photoslibrary.edit.appcreateddata
untuk melakukan perubahan.
Judul album tidak boleh lebih dari 500 karakter. Item media sampul harus dimiliki oleh pemilik album, dan merupakan bagian dari album yang akan menjadi sampul.
REST
Berikut adalah header permintaan PATCH untuk memperbarui title
dan
coverPhotomediaItemId
album.
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 URL. Parameter updateMask
harus diteruskan untuk setiap
properti album yang diperbarui.
Untuk setiap properti yang Anda perbarui, sertakan detailnya dalam isi permintaan:
{ "title": "new-album-title", "coverPhotoMediaItemId": "new-cover-media-item-id" }
Jika berhasil, respons akan menampilkan detail album
yang diperbarui:
{ "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
memanggil
albums.batchAddMediaItems
.
Item media ditambahkan ke akhir album dalam urutan yang diberikan dalam panggilan ini.
Seluruh permintaan akan gagal jika item media atau album yang tidak valid ditentukan. Keberhasilan sebagian tidak didukung.
Setiap album dapat berisi hingga 20.000 item media. Permintaan untuk menambahkan item lain yang melebihi batas ini akan gagal.
Perhatikan bahwa Anda hanya dapat menambahkan item media yang telah diupload oleh aplikasi Anda ke album yang telah dibuat aplikasi Anda. Item media juga harus berada di library pengguna. Untuk album yang dibagikan, album harus dimiliki oleh pengguna atau pengguna harus merupakan kolaborator yang sudah bergabung dengan album.
Untuk menambahkan item media ke album, panggil
albums.batchAddMediaItems
dengan ID item media dan album.
REST
Berikut adalah {i>header<i} 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 status HTTP Success.
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. Keberhasilan sebagian tidak didukung.
Perlu diperhatikan bahwa Anda hanya dapat menghapus item media yang telah ditambahkan oleh aplikasi atau yang telah dibuat dalam 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 album.
Untuk menghapus item media dari album, panggil
albums.batchRemoveMediaItems
dengan ID item media dan album.
REST
Berikut adalah {i>header<i} 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 status HTTP Success.
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 }