Albumy utworzone przez Twoją aplikację mogą być udostępniane między użytkownikami, a dodatkowo możesz zezwolić na to tych użytkowników do komentowania lub dodawania własnych elementów multimedialnych do albumu.
Aby udostępnić album przy użyciu interfejsu Google Photos Library API, aplikacja musi:
- Utwórz album w imieniu użytkownika.
- Ustaw album jako udostępniony.
Wymagany zakres uwierzytelniania
Aby można było udostępniać treści, aplikacja musi poprosić o photoslibrary.sharing
zakres autoryzacji.
Udostępnianie albumu
Zanim udostępnisz album, weź pod uwagę te informacje:
- Aplikacja może udostępniać tylko albumy utworzone przez siebie. albumów utworzonych przez inne aplikacje, (w tym w Zdjęciach Google), nie mogą być udostępniane przez Twoją aplikację.
- Gdy aplikacja udostępni album przez interfejs Library API, URL do udostępniania jest generowany, dzięki czemu każdy może uzyskać dostęp do albumu.
- W przypadku albumów udostępnianych przez interfejs API właściciel albumu może wyłączanie udostępniania linków lub cofnąć udostępnianie albumu w aplikacji Zdjęcia Google, co może uniemożliwić dołączanie do niej nowych użytkowników.
Aby udostępnić album:
- Postępuj zgodnie z UX uzyskać od użytkownika wyraźną zgodę na utworzenie albumu udostępnionego;
- Utwórz album,
i nagrać jej
albumId
. Jeśli album został już utworzony, możesz: pobierze swojąalbumId
przez udostępnianie albumów użytkownika. - Zadzwoń pod numer
albums.share
, używając numeru odpowiedni elementalbumId
wraz z Wybierz opcje udostępniania, które chcesz ustawiony. - Nagraj
shareToken
w odpowiedzi. Token udostępniania to identyfikator albumu udostępnionego. których można używać na różnych kontach użytkowników. - Inny użytkownik może teraz uwierzytelnić się w Twojej aplikacji,
join,
opuścić stronę lub
poznaj szczegóły
albumu udostępnionego za pomocą funkcji
shareToken
.
Opcje udostępniania
Poniższe opcje można ustawić podczas udostępniania albumu za pomocą
sharedAlbumOptions
. Jeśli opcje nie są wyraźnie ustawione, używane są wartości domyślne.
Właściwość | Wartość domyślna | Opis |
---|---|---|
isCollaborative |
false |
Określa, czy inni użytkownicy Zdjęć Google mogą dodawać treści do album udostępniony. |
isCommentable |
false |
Określa, czy inni użytkownicy Zdjęć Google mogą komentować album udostępniony. |
Przykładowe żądanie
Następująca prośba o udostępnienie albumu powoduje udostępnienie albumu przez wywołanie metody albums.share
z opcjami. O
Usługa shareInfo
jest zwracany w odpowiedzi opisującej atrybut
właściwościach udostępniania.
REST
Oto nagłówek żądania POST służącego do udostępnienia albumu:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:share Content-type: application/json Authorization: Bearer oauth2-token
W treści żądania określ opcje udostępniania.
{ "sharedAlbumOptions": { "isCollaborative": "true", "isCommentable": "true" } }
To żądanie zwraca następującą odpowiedź:
{ "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 }
Właściwości albumu udostępnionego
W przypadku albumów utworzonych i udostępnionych przez aplikację wszystkie odpowiedzi,
zwraca album
uwzględnić dodatkową właściwość,
shareInfo
Ten
jest zwracana przy udostępnianiu,
wizytówki lub
pobieram albumy.
W tabeli poniżej znajdziesz listę
shareInfo
właściwości:
Właściwości | |
---|---|
sharedAlbumOptions |
Opcje określające, czy ktoś może dodaj multimedia elementy do albumu udostępnionego lub skomentuj go. |
shareableUrl |
Link do udostępnionego albumu Zdjęć Google. Każda osoba mająca link może podczas wyświetlania zawartości albumu, dlatego należy traktować go z rozwagą. Pole Link |
shareToken |
Token, który jest używany do join, opuść, lub pobrać szczegółowych informacji o albumie udostępnionym w imieniu użytkownika, który nie jest właściciela. Link |
isJoinable |
True , jeśli użytkownicy mogą dołączyć do albumu. |
isJoined |
True , jeśli użytkownik dołączył do albumu. Tak jest zawsze
true (prawda) w przypadku właściciela albumu. |
isOwned |
True , jeśli album należy do użytkownika. |
Cofanie udostępniania albumu
Aby cofnąć udostępnianie albumu udostępnionego przez aplikację, zadzwoń pod numer
albums.unshare
za pomocą
albumId
albumu.
Oprócz tego, że album nie będzie już udostępniany, zostaną też udostępnione te informacje: za:
- Wszyscy użytkownicy, którzy nie są właścicielami, utracą dostęp do albumu. Obejmuje to osoby, które: miał ten album specjalnie udostępnione w aplikacji Zdjęcia Google.
- Cała treść dodana przez osoby niebędące właścicielami zostanie usunięta z albumu.
- Jeśli użytkownik dodał wcześniej zawartość albumu do swojej biblioteki, treści pozostaną w ich bibliotece.
- Token udostępniania albumu i URL, który można udostępnić, zostaną unieważnione.
Przykładowe żądanie
REST
Oto nagłówek żądania POST, które pozwala cofnąć udostępnianie albumu:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:unshare Content-type: application/json Authorization: Bearer oauth2-token
Treść żądania musi być pusta.
Jeśli żądanie zostało zrealizowane, zwraca pustą odpowiedź z protokołem HTTP kod stanu sukcesu. Jeśli żądanie nie zostało zrealizowane, zwracany jest kod HTTP. kod stanu z komunikatem o błędzie.
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 }
Pobieranie albumów udostępnionych i tokenów udostępniania
Szczegóły albumu udostępnionego, łącznie z tokenem udostępniania, są zwracane, gdy aplikacja udostępni album. Dostępne opcje będzie też pobierać te szczegóły w następujący sposób.
Jeśli użytkownik obecnie połączony z Twoją aplikacją jest jej właścicielem lub należy do album:
- Jeśli
albums.get
używaszalbumId
. - Za pomocą
albums.list
, jeśli jest dostępny to elementy multimedialne w albumie. - Na
sharedAlbums.list
zwraca wszystkie albumy udostępnione, do których użytkownik dołączył lub których jest właścicielem. Aby pobrać tylko albumy utworzone przez aplikację, użyj funkcjiexcludeNonAppCreatedData
. - Z:
sharedAlbums.get
za pomocą tokena udostępniania.
Jeśli użytkownik obecnie połączony z Twoją aplikacją nie dołączył do albumu, możesz
możesz pobrać szczegóły albumu udostępnionego za pomocą
sharedAlbums.get
za pomocą
prawidłowy token udostępniania.
Przykładowe żądanie
REST
Oto prośba o udostępnienie albumu przez shareToken
:
GET https://photoslibrary.googleapis.com/v1/sharedAlbums/share-token
Jeśli żądanie zostanie zrealizowane, zostaną zwrócone udostępnione
album
.
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 }
dołączanie do albumu udostępnionego,
Twoja aplikacja może dołączyć do albumu udostępnionego w imieniu użytkownika, który udostępni ten album. token. Aby było to możliwe, muszą być spełnione te warunki:
- Twoja aplikacja ma utworzył(a) i udostępnił(a) .
- Użytkownik, do którego chcesz dołączyć, nie jest jego właścicielem. Oznacza to, że
isOwned
w polu albumushareInfo
. ma wartość false (fałsz). - Token udostępniania jest prawidłowy.
- Pole
isJoinable
w polushareInfo
albumu ma wartość true (prawda).
REST
Oto nagłówek żądania POST umożliwiającego dołączenie do albumu udostępnionego:
POST https://photoslibrary.googleapis.com/v1/sharedAlbums:join Content-type: application/json Authorization: Bearer oauth2-token
W treści żądania określ shareToken
.
{ "shareToken": "share-token" }
Żądanie POST zwraca udostępniony element album
.
dołączyła Twoja aplikacja w imieniu użytkownika.
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 }
Opuszczanie udostępnionego albumu
Aplikacja może opuścić album udostępniony w imieniu użytkownika, korzystając z udostępniania albumu token. Aby było to możliwe, muszą być spełnione te warunki:
- Twoja aplikacja utworzyła i udostępniła album.
- Użytkownik dołączył obecnie do albumu. Oznacza to, że pole
isJoined
wshareInfo
albumu to prawda. - Użytkownik połączony z Twoją aplikacją nie jest właścicielem albumu. Oznacza to, że
Pole
isOwned
w polushareInfo
albumu ma wartość Fałsz.
REST
Oto nagłówek żądania POST służącego do opuszczania albumu udostępnionego:
POST https://photoslibrary.googleapis.com/v1/sharedAlbums:leave Content-type: application/json Authorization: Bearer oauth2-token
W treści żądania określ shareToken
.
{ "shareToken": "share-token" }
Jeśli żądanie zostało zrealizowane, zwraca pustą odpowiedź z protokołem HTTP kod stanu sukcesu. Jeśli żądanie nie zostało zrealizowane, zwracany jest kod HTTP. kod stanu z komunikatem o błędzie.
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 }
Właściwości udostępnianego elementu multimedialnego
Elementy multimedialne, które należą do:
albumy udostępniane przez Twoją aplikację zawierają dodatkową właściwość,
contributorInfo
.
Ta właściwość jest uwzględniana tylko wtedy, gdy podajesz
zawartości albumu udostępnionego.
Właściwość contributorInfo
zawiera nazwę użytkownika, który dodał multimedia.
element w albumie oraz element
podstawowy adres URL profilu
.
Oto przykład:
{ "id: "media-item-id", ..., "mediaMetadata": { ... } "contributorInfo": { "profilePictureBaseUrl": "profile-picture-base-url_use-only-with-parameters", "displayName": "name-of-user" } }