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:
- Erstellen Sie ein Album im Namen eines Nutzers.
- 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:
- Folgen Sie UX-Richtlinien und die ausdrückliche Zustimmung des Nutzers zur Erstellung eines geteilten Albums einholen.
- Erstellen Sie das Album,
und nimm
albumId
auf. Wenn Sie das Album bereits erstellt haben, können SiealbumId
abrufen nach Auflistung der Alben des Nutzers albums.share
anrufen über die entsprechendealbumId
, zusammen mit den Optionen zum Teilen, festgelegt.- 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. - 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
|
shareToken |
Ein Token, mit dem join, verlassen, oder abrufen die Details eines geteilten Albums im Namen eines Nutzers, der nicht der Inhaber.
|
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:
- Mit
albums.get
unter Verwendung desalbumId
relevant. - Bei
albums.list
, falls sind Medienelemente im Album. - Mit
sharedAlbums.list
, das alle geteilten Alben zurückgibt, denen der Nutzer beigetreten ist oder die er besitzt. Abrufen Alben, die von Ihrer App erstellt wurden, verwenden Sie denexcludeNonAppCreatedData
. - Mit
sharedAlbums.get
mithilfe eines Freigabetokens.
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 denshareInfo
ist „false“. - Das Freigabetoken ist gültig.
- Das Feld
isJoinable
inshareInfo
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
imshareInfo
des Albums wahr ist. - Der mit Ihrer App verbundene Nutzer ist nicht der Inhaber des Albums. Das heißt, der Parameter
Das Feld „
isOwned
“ inshareInfo
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" } }