Medien teilen

Alben, die von Ihrer App erstellt wurden, können von anderen Nutzern gemeinsam verwendet werden. diese Nutzer kommentieren oder dem Album ihre eigenen Medienelemente beisteuern können.

Damit Sie ein Album über die Google Photos Library API teilen können, muss Ihre App folgende Voraussetzungen erfüllen:

  1. Erstellen Sie ein Album im Namen eines Nutzers.
  2. Setze dieses Album auf „Geteilt“.

Erforderlicher Authentifizierungsbereich

Zum Teilen von Inhalten muss deine App die photoslibrary.sharing anfordern Autorisierungsbereich.

Alben teilen

Bevor Sie ein Album teilen, sollten Sie Folgendes beachten:

  • Deine App kann nur Alben teilen, die sie erstellt hat. Von anderen Apps erstellte Alben, können von der App nicht geteilt werden.
  • Wenn Ihre App ein Album über die Library API teilt, wird ein URL zum Teilen wird generiert, damit jeder auf das Album zugreifen kann.
  • Bei Alben, die über die API geteilt wurden, kann der Inhaber des Albums Folgendes tun: Linkfreigabe deaktivieren oder die Freigabe des Albums in der Google Fotos App aufheben, wodurch Ihr neuen Nutzern hinzugefügt werden.

So teilen Sie ein Album:

  1. Folgen Sie UX-Richtlinien und die ausdrückliche Zustimmung des Nutzers zur Erstellung eines geteilten Albums einholen.
  2. Erstellen Sie das Album, und nimm albumId auf. Wenn Sie das Album bereits erstellt haben, können Sie albumId abrufen nach Auflistung der Alben des Nutzers
  3. albums.share anrufen über die entsprechende albumId, zusammen mit den Optionen zum Teilen, festgelegt.
  4. Zeichnen Sie die shareToken in der Antwort einen Wert ein. Das Freigabetoken ist eine Kennung für ein geteiltes Album. die für verschiedene Nutzerkonten verwendet werden können.
  5. Ein anderer Nutzer kann sich jetzt bei Ihrer App authentifizieren. join, verlassen oder die Details abzurufen des geteilten Albums mit shareToken.

Optionen zum Teilen

Die folgenden Optionen können beim Teilen eines Albums mithilfe der sharedAlbumOptions . Wenn die Optionen nicht explizit festgelegt sind, werden die Standardwerte verwendet.

Attribut Standardwert Beschreibung
isCollaborative false Legt fest, ob andere Google Fotos-Nutzer Inhalte zu den geteiltes Album.
isCommentable false Legt fest, ob andere Google Fotos-Nutzer die Datei kommentieren dürfen geteiltes Album.

Beispielanfrage

Mit der folgenden Anfrage wird ein Album geteilt, indem albums.share mit Optionen aufgerufen wird. A Property shareInfo wird in der Antwort zurückgegeben, die die Properties gemeinsam nutzen.

REST

Dies ist ein POST-Anfrageheader zum Teilen eines Albums:

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

Geben Sie im Anfragetext die Freigabeoptionen an.

{
  "sharedAlbumOptions": {
    "isCollaborative": "true",
    "isCommentable": "true"
  }
}

Diese Anfrage gibt die folgende Antwort zurück:

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

Eigenschaften geteilter Alben

Bei Alben, die von Ihrer App erstellt und geteilt wurden, werden alle Antworten, die album zurückgeben eine zusätzliche Property enthalten, shareInfo Dieses Property bei sharing, Eintrag oder Alben werden abgerufen.

In der folgenden Tabelle sind die shareInfo Eigenschaften:

Attribute
sharedAlbumOptions Optionen, die beschreiben, ob jemand Medien hinzufügen zu einem geteilten Album hinzufügen oder es kommentieren.
shareableUrl

Ein Link zum geteilten Google Fotos-Album. Jeder, der über den Link verfügt, kann sich den Inhalt des Albums ansehen und daher mit Sorgfalt vorgehen sollte.

Das Feld shareableUrl wird nur zurückgegeben, wenn das Album hat Linkfreigabe aktiviert ist. Wenn ein Nutzer bereits einem Album beigetreten ist, das nicht per Link geteilt wurde, können sie die productUrl des Albums für Folgendes verwenden: greifen Sie stattdessen darauf zu.

shareableUrl wird ungültig, wenn der Inhaber die Verknüpfung deaktiviert in der Google Fotos App teilen oder wenn das Teilen des Albums aufgehoben wurde.

shareToken

Ein Token, mit dem join, verlassen, oder abrufen die Details eines geteilten Albums im Namen eines Nutzers, der nicht der Inhaber.

shareToken wird ungültig, wenn der Inhaber die Verknüpfung deaktiviert in der Google Fotos App teilen oder wenn das Teilen des Albums aufgehoben wurde.

isJoinable True, wenn Nutzer dem Album beitreten können
isJoined True, wenn der Nutzer dem Album beigetreten ist. Dies ist immer true für den Eigentümer des Albums.
isOwned True, wenn der Nutzer Inhaber des Albums ist

Teilen eines Albums aufheben

Wenn Sie die Freigabe eines Albums zurücknehmen möchten, das von Ihrer App geteilt wurde, rufen Sie albums.unshare mit dem albumId des Albums.

Zusätzlich dazu, dass das Album nicht mehr geteilt wird, werden die folgenden Dinge Folgendes passieren:

  • Alle Nichteigentümer verlieren den Zugriff auf das Album. Dazu gehören auch Personen, hatte das Album speziell geteilt über die Google Fotos App.
  • Alle Inhalte, die von Nicht-Inhabern hinzugefügt wurden, werden aus dem Album entfernt.
  • Wenn ein Nutzer den Inhalt des Albums bereits zu seiner Bibliothek hinzugefügt hat, wird das Symbol bleiben in der Mediathek erhalten.
  • Das Freigabetoken und die teilbare URL des Albums werden ungültig.

Beispielanfrage

REST

Dies ist ein POST-Anfrage-Header zum Aufheben der Freigabe eines Albums:

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

Der Anfragetext muss leer sein.

Wenn die Anfrage erfolgreich war, wird eine leere Antwort mit einem HTTP-Statuscode zurückgegeben. Statuscode des Erfolgs. Wenn die Anfrage nicht erfolgreich war, wird eine HTTP- Fehlerstatuscode mit einer Fehlermeldung angezeigt.

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
}

Geteilte Alben und Tokens zum Teilen werden abgerufen

Details zu einem geteilten Album werden zurückgegeben, wenn Ihre App ein Album teilt. Sie können und rufen diese Details anschließend auf folgende Weise ab.

Wenn der Nutzer, der momentan mit Ihrer App verbunden ist, der Eigentümer ist oder Mitglied des Album:

Wenn der momentan mit Ihrer App verbundene Nutzer dem Album nicht beigetreten ist, haben Sie folgende Möglichkeiten: Details eines geteilten Albums abrufen mit sharedAlbums.get mit einem gültiges Freigabetoken.

Beispielanfrage

REST

Hier ist eine Anfrage zum Abrufen eines Albums von shareToken:

GET https://photoslibrary.googleapis.com/v1/sharedAlbums/share-token

Wenn die Anfrage erfolgreich ist, wird das freigegebene <ph type="x-smartling-placeholder"></ph> 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
}

Einem geteilten Album beitreten

Deine App kann einem geteilten Album im Namen eines Nutzers beitreten, für den das Album geteilt wurde Token. Dazu müssen folgende Bedingungen erfüllt sein:

  • Deine App hat erstellt und freigegeben, Album.
  • Der Nutzer, dem Sie dem Album beitreten möchten, ist nicht der Eigentümer. Das heißt, der Parameter Feld isOwned in den shareInfo ist „false“.
  • Das Freigabetoken ist gültig.
  • Das Feld isJoinable in shareInfo des Albums ist auf „true“ gesetzt.

REST

Dies ist die Kopfzeile der POST-Anfrage für den Beitritt zu einem geteilten Album:

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

Geben Sie im Anfragetext die shareToken an.

{
  "shareToken": "share-token"
}

Die POST-Anfrage gibt den freigegebenen album zurück. ist Ihre App im Namen des Nutzers beigetreten.

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
}

Geteilte Alben verlassen

Deine App kann ein geteiltes Album im Namen eines Nutzers verlassen, indem du die Option zum Teilen des Albums nutzt Token. Dazu müssen folgende Bedingungen erfüllt sein:

  • Deine App hat das Album erstellt und geteilt.
  • Der Nutzer ist dem Album derzeit beigetreten. Das heißt, das Feld isJoined im shareInfo des Albums wahr ist.
  • Der mit Ihrer App verbundene Nutzer ist nicht der Inhaber des Albums. Das heißt, der Parameter Das Feld „isOwned“ in shareInfo des Albums enthält den Wert „false“.

REST

Dies ist ein POST-Anfrageheader zum Verlassen eines geteilten Albums:

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

Geben Sie im Anfragetext die shareToken an.

{
  "shareToken": "share-token"
}

Wenn die Anfrage erfolgreich war, wird eine leere Antwort mit einem HTTP-Statuscode zurückgegeben. Statuscode des Erfolgs. Wenn die Anfrage nicht erfolgreich war, wird eine HTTP- Fehlerstatuscode mit einer Fehlermeldung angezeigt.

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
}

Eigenschaften freigegebener Medienelemente

Mediaelemente, die zu Von deiner App geteilte Alben enthalten eine zusätzliche Eigenschaft, contributorInfo Diese Eigenschaft ist nur beim Auflistung der Inhalt eines geteilten Albums.

Das Attribut contributorInfo enthält den Namen des Nutzers, der die Medien hinzugefügt hat Element zum Album hinzufügen und Basis-URL zu ihrem Profil Bild.

Beispiel:

{
  "id: "media-item-id",
  ...,
  "mediaMetadata": {
    ...
  }
  "contributorInfo": {
    "profilePictureBaseUrl": "profile-picture-base-url_use-only-with-parameters",
    "displayName": "name-of-user"
  }
}