Udostępnij multimedia

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:

  1. Utwórz album w imieniu użytkownika.
  2. 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:

  1. Postępuj zgodnie z UX uzyskać od użytkownika wyraźną zgodę na utworzenie albumu udostępnionego;
  2. 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.
  3. Zadzwoń pod numer albums.share, używając numeru odpowiedni element albumId wraz z Wybierz opcje udostępniania, które chcesz ustawiony.
  4. 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.
  5. 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 shareableUrl jest zwracane tylko wtedy, gdy album ma udostępnianie linków włączono. Jeśli użytkownik dołączył już do albumu, który nie jest udostępniany przez link, może użyć adresu productUrl albumu, aby uzyskać do niego dostęp.

Link shareableUrl zostanie unieważniony, jeśli właściciel wyłączy link udostępnianie w aplikacji Zdjęcia Google lub album.

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 shareToken zostanie unieważniony, jeśli właściciel wyłączy link udostępnianie w aplikacji Zdjęcia Google lub album.

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żywasz albumId.
  • 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 funkcji excludeNonAppCreatedData .
  • 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 albumu shareInfo. ma wartość false (fałsz).
  • Token udostępniania jest prawidłowy.
  • Pole isJoinable w polu shareInfo 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 w shareInfo albumu to prawda.
  • Użytkownik połączony z Twoją aplikacją nie jest właścicielem albumu. Oznacza to, że Pole isOwned w polu shareInfo 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"
  }
}