Album yang dibuat oleh aplikasi Anda dapat dibagikan antar-pengguna, dengan opsi untuk mengizinkan yang dapat dikomentari, atau menyumbangkan item media mereka sendiri ke album.
Untuk membagikan album melalui Google Photos Library API, aplikasi Anda perlu melakukan hal berikut:
- Buat album atas nama pengguna.
- Setel album tersebut ke dibagikan.
Cakupan autentikasi yang diperlukan
Untuk membagikan konten, aplikasi Anda harus meminta photoslibrary.sharing
cakupan otorisasi.
Membagikan album
Sebelum membagikan album, pertimbangkan pertimbangan berikut:
- Aplikasi Anda hanya dapat membagikan album yang telah dibuatnya. Album yang dibuat oleh aplikasi lain, termasuk Google Foto, tidak dapat dibagikan oleh aplikasi.
- Saat aplikasi Anda membagikan album melalui Library API, URL yang dapat dibagikan akan dibuat sehingga dapat digunakan oleh siapa pun untuk mengakses album tersebut.
- Untuk album yang dibagikan melalui API, pemilik album dapat nonaktifkan berbagi link atau membatalkan berbagi album di aplikasi Google Foto, yang berpotensi mencegah mencegah aplikasi bergabung dengan pengguna baru.
Untuk membagikan album:
- Ikuti Panduan UX dan mendapatkan izin eksplisit dari pengguna untuk membuat album bersama.
- Buat album,
dan merekam
albumId
-nya. Jika sudah membuat album, Anda dapat mengambilalbumId
-nya dengan mencantumkan album pengguna. - Panggil
albums.share
menggunakanalbumId
yang relevan, beserta opsi berbagi yang Anda inginkan atur. - Rekam
shareToken
nilai dalam respons. Token berbagi adalah ID untuk album bersama yang dapat digunakan di berbagai akun pengguna yang berbeda. - Pengguna lain kini bisa melakukan autentikasi dengan aplikasi Anda, kemudian
gabung,
keluar, atau
ambil detailnya
dari album bersama menggunakan
shareToken
-nya.
Opsi berbagi
Opsi berikut dapat disetel saat berbagi album menggunakan
sharedAlbumOptions
. Jika opsi tidak ditetapkan secara eksplisit, nilai default akan digunakan.
Properti | Nilai default | Deskripsi |
---|---|---|
isCollaborative |
false |
Menetapkan apakah pengguna Google Foto lainnya dapat menambahkan konten ke album bersama. |
isCommentable |
false |
Menetapkan apakah pengguna Google Foto lain dapat mengomentari album bersama. |
Contoh permintaan
Permintaan berikut membagikan album dengan memanggil albums.share
beserta opsi. J
Properti shareInfo
akan ditampilkan dalam respons yang menjelaskan atribut
berbagi properti.
REST
Berikut adalah header permintaan POST untuk membagikan album:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:share Content-type: application/json Authorization: Bearer oauth2-token
Dalam isi permintaan, tentukan opsi berbagi.
{ "sharedAlbumOptions": { "isCollaborative": "true", "isCommentable": "true" } }
Permintaan ini akan menampilkan respons berikut:
{ "shareInfo": { "sharedAlbumOptions": { "isCollaborative": "true", "isCommentable": "true" }, "shareableUrl": "shareable-url", "shareToken": "share-token", "isJoinable": "true-if-users-can-join-album", "isJoined": "true-if-user-is-joined-to-album", "isOwned": "true-if-user-owns-album" } }
Java
try { SharedAlbumOptions options = // Set the options for the album you want to share SharedAlbumOptions.newBuilder() .setIsCollaborative(true) .setIsCommentable(true) .build(); ShareAlbumResponse response = photosLibraryClient.shareAlbum(albumId, options); // The response contains the shareInfo object, a url, and a token for sharing ShareInfo info = response.getShareInfo(); // Link to the shared album String url = info.getShareableUrl(); String shareToken = info // The share token which other users of your app can use to join the album you shared .getShareToken(); SharedAlbumOptions sharedOptions = info // The options set when sharing this album .getSharedAlbumOptions(); } catch (ApiException e) { // Handle error }
PHP
// Set the options for the album you want to share $options = new SharedAlbumOptions(); $options->setIsCollaborative(true); $options->setIsCommentable(true); try { $response = $photosLibraryClient->shareAlbum($albumId, ['sharedAlbumOptions' => $options]); // The response contains the shareInfo object, a url, and a token for sharing $shareInfo = $response->getShareInfo(); // Link to the shared album $url = $shareInfo->getShareableUrl(); // The share token which other users of your app can use to join the album you shared $shareToken = $shareInfo->getShareToken(); // The options set when sharing this album $sharedOptions = $shareInfo->getSharedAlbumOptions(); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
Properti album bersama
Untuk album yang telah dibuat dan dibagikan oleh aplikasi Anda, semua respons yang
tampilkan album
menyertakan properti tambahan,
shareInfo
. Ini
properti ditampilkan saat berbagi,
listingan atau
mengambil album.
Tabel berikut mencantumkan
shareInfo
properti:
Properti | |
---|---|
sharedAlbumOptions |
Opsi yang menjelaskan apakah seseorang dapat tambahkan media item ke atau mengomentari album bersama. |
shareableUrl |
Link ke album Google Foto yang dibagikan. Siapa saja yang memiliki link dapat melihat konten album, sehingga harus ditangani dengan hati-hati. Kolom
|
shareToken |
Token yang digunakan untuk gabung, keluar, atau ambil detail album bersama atas nama pengguna yang bukan pemilik situs.
|
isJoinable |
True jika album dapat digabungkan oleh pengguna. |
isJoined |
True jika pengguna bergabung ke album. Ini selalu
benar untuk pemilik album. |
isOwned |
True jika pengguna memiliki album tersebut. |
Membatalkan berbagi album
Untuk membatalkan berbagi album yang sebelumnya dibagikan aplikasi Anda, panggil
albums.unshare
menggunakan
albumId
album ini.
Selain album yang tidak lagi dibagikan, hal-hal berikut akan terjadi:
- Semua orang yang bukan pemilik akan kehilangan akses ke album. Ini termasuk orang-orang yang memiliki punya albumnya dibagikan secara khusus dengan mereka melalui aplikasi Google Foto.
- Semua konten yang ditambahkan oleh selain pemilik akan dihapus dari album.
- Jika sebelumnya pengguna telah menambahkan konten album ke koleksinya, konten akan disimpan di koleksi mereka.
- Token berbagi album dan URL yang dapat dibagikan akan menjadi tidak valid.
Contoh permintaan
REST
Berikut adalah header permintaan POST untuk membatalkan berbagi album:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:unshare Content-type: application/json Authorization: Bearer oauth2-token
Isi permintaan harus kosong.
Jika permintaan berhasil, permintaan akan menampilkan respons kosong dengan permintaan HTTP kode status berhasil. Jika permintaan tidak berhasil, permintaan akan menampilkan HTTP kode status error dengan pesan error.
Java
try { // If this call is not successful, an exception is raised photosLibraryClient.unshareAlbum(albumId); } catch (ApiException e) { // Handle error }
PHP
try { // Mark the album as private and no longer shared // If this call is not successful, an exception is raised $photosLibraryClient->unshareAlbum($albumId); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
Mengambil album bersama dan membagikan token
Detail album bersama, termasuk token berbaginya, akan ditampilkan saat aplikasi Anda membagikan album. Anda dapat juga mengambil detail tersebut setelahnya dengan cara berikut.
Jika pengguna yang saat ini terhubung ke aplikasi Anda adalah pemilik, atau bergabung ke album:
- Dengan
albums.get
yang menggunakanalbumId
yang relevan. - Dengan
albums.list
, jika ada terdapat item media dalam album. - Dengan
sharedAlbums.list
, yang menampilkan semua album bersama tempat pengguna bergabung atau dimiliki. Untuk mengambil hanya album yang dibuat aplikasi Anda, gunakanexcludeNonAppCreatedData
. - Dengan
sharedAlbums.get
menggunakan token berbagi.
Jika pengguna yang saat ini tersambung ke aplikasi Anda tidak bergabung dengan album, Anda dapat
mengambil detail album bersama dengan
sharedAlbums.get
menggunakan
token berbagi yang valid.
Contoh permintaan
REST
Berikut permintaan untuk mendapatkan album dari shareToken
-nya:
GET https://photoslibrary.googleapis.com/v1/sharedAlbums/share-token
Jika permintaan berhasil, permintaan akan mengembalikan
album
detail.
Java
try { // Get a shared album from its share token Album sharedAlbum = photosLibraryClient.getSharedAlbum(shareToken); String id = sharedAlbum.getId(); String title = sharedAlbum.getTitle(); // ... } catch (ApiException e) { // Handle error }
PHP
try { // Get the album from a share token $album = $photosLibraryClient->getSharedAlbum($shareToken); // Get some properties of an album $productUrl = $album->getProductUrl(); $title = $album->getTitle(); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
Bergabung dengan album bersama
Aplikasi Anda dapat bergabung ke album bersama atas nama pengguna yang memiliki bagian album sebelumnya yang benar. Untuk melakukannya, kondisi berikut harus terpenuhi:
- Aplikasi Anda memiliki membuat dan membagikan album.
- Pengguna yang ingin Anda gabungkan ke album bukan pemiliknya. Yaitu,
Kolom
isOwned
di bagian albumshareInfo
adalah salah. - Token berbagi valid.
- Kolom
isJoinable
dishareInfo
album adalah benar.
REST
Berikut adalah header permintaan POST untuk bergabung dengan album bersama:
POST https://photoslibrary.googleapis.com/v1/sharedAlbums:join Content-type: application/json Authorization: Bearer oauth2-token
Dalam isi permintaan, tentukan shareToken
.
{ "shareToken": "share-token" }
Permintaan POST menampilkan album
yang dibagikan
aplikasi Anda bergabung atas nama pengguna.
Java
try { // Join the shared album using the share token obtained when sharing the album // If this call is not successful, an exception is raised JoinSharedAlbumResponse response = photosLibraryClient.joinSharedAlbum(shareToken); Album joinedAlbum = response.getAlbum(); } catch (ApiException e) { // Handle error }
PHP
try { $response = $photosLibraryClient->joinSharedAlbum($shareToken); // Join the shared album using the share token obtained when sharing the album // If this call is not successful, an exception is raised $joinedAlbum = $response->getAlbum(); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
Keluar dari album bersama
Aplikasi Anda dapat keluar dari album bersama atas nama pengguna, menggunakan fitur berbagi album sebelumnya yang benar. Untuk melakukannya, kondisi berikut harus terpenuhi:
- Aplikasi Anda telah membuat dan membagikan album.
- Saat ini pengguna bergabung ke album. Artinya, kolom
isJoined
dalamshareInfo
album adalah benar. - Pengguna yang terhubung ke aplikasi Anda bukan pemilik album. Yaitu,
Kolom
isOwned
padashareInfo
album salah.
REST
Berikut adalah header permintaan POST untuk keluar dari album bersama:
POST https://photoslibrary.googleapis.com/v1/sharedAlbums:leave Content-type: application/json Authorization: Bearer oauth2-token
Dalam isi permintaan, tentukan shareToken
.
{ "shareToken": "share-token" }
Jika permintaan berhasil, permintaan akan menampilkan respons kosong dengan permintaan HTTP kode status berhasil. Jika permintaan tidak berhasil, permintaan akan menampilkan HTTP kode status error dengan pesan error.
Java
try { // Leave a shared album using its share token // If this call is not successful, an exception is raised photosLibraryClient.leaveSharedAlbum(shareToken); } catch (ApiException e) { // Handle error }
PHP
try { // Leave the shared album using the share token obtained when sharing the album // If this call is not successful, an exception is raised $photosLibraryClient->leaveSharedAlbum($shareToken); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
Properti item media bersama
Item media yang termasuk dalam
album yang dibagikan oleh aplikasi Anda berisi properti tambahan,
contributorInfo
Properti ini hanya disertakan bila mencantumkan
konten album bersama.
Properti contributorInfo
berisi nama pengguna yang menambahkan media
item ke album, dan
URL dasar ke profil mereka
gambar.
Berikut contohnya:
{ "id: "media-item-id", ..., "mediaMetadata": { ... } "contributorInfo": { "profilePictureBaseUrl": "profile-picture-base-url_use-only-with-parameters", "displayName": "name-of-user" } }