Gli album creati dalla tua app possono essere condivisi tra utenti, con opzioni per consentire per permettere a questi utenti di commentare o contribuire con i propri elementi multimediali all'album.
Per condividere un album tramite l'API Raccolta di Google Foto, l'app deve:
- Creare un album per conto di un utente.
- Imposta l'album come condiviso.
Ambito di autenticazione obbligatorio
Per condividere contenuti, la tua app deve richiedere photoslibrary.sharing
ambito di autorizzazione.
Condivisione di un album
Prima di condividere un album, prendi in considerazione i seguenti aspetti:
- La tua app può condividere soltanto gli album che ha creato. Album creati da altre app incluso Google Foto, non possono essere condivisi dalla tua app.
- Quando la tua app condivide un album tramite l'API Library, viene visualizzata una URL condivisibile che chiunque può utilizzare per accedere all'album.
- Per gli album condivisi tramite l'API, il proprietario può disattivare la condivisione tramite link o annullare la condivisione dell'album nell'app Google Foto, impedendo potenzialmente la tua di aggiungere nuovi utenti all'app.
Per condividere un album:
- Segui le linee guida per l'esperienza utente e ottenere il consenso esplicito dell'utente per la creazione di un album condiviso.
- Crea l'album.
e registrare i suoi
albumId
. Se hai già creato l'album, puoi recupera il suoalbumId
per pubblicare gli album dell'utente in una scheda. - Chiama il numero
albums.share
tramite ilalbumId
pertinente, insieme ai le opzioni di condivisione che vuoi per iniziare. - Registra il
shareToken
nella risposta. Il token di condivisione è un identificatore di un album condiviso che possono essere utilizzate in diversi account utente. - Un altro utente può ora eseguire l'autenticazione con la tua app.
join,
abbandona o
recuperare i dettagli
dell'album condiviso utilizzando i suoi
shareToken
.
Opzioni di condivisione
Quando condividi un album utilizzando il pulsante
sharedAlbumOptions
. Se le opzioni non sono impostate in modo esplicito, vengono utilizzati i valori predefiniti.
Proprietà | Valore predefinito | Descrizione |
---|---|---|
isCollaborative |
false |
Consente di impostare se altri utenti di Google Foto possono aggiungere contenuti al album condiviso. |
isCommentable |
false |
Consente di stabilire se gli altri utenti di Google Foto possono commentare la album condiviso. |
Esempio di richiesta
La seguente richiesta condivide un album chiamando albums.share
con le opzioni. R
Proprietà shareInfo
viene restituito nella risposta che descrive
proprietà di condivisione.
REST
Ecco l'intestazione di una richiesta POST per condividere un album:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:share Content-type: application/json Authorization: Bearer oauth2-token
Nel corpo della richiesta, specifica le opzioni di condivisione.
{ "sharedAlbumOptions": { "isCollaborative": "true", "isCommentable": "true" } }
Questa richiesta restituisce la seguente risposta:
{ "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 }
Proprietà album condiviso
Per gli album creati e condivisi dalla tua app, tutte le risposte che
restituisce un album
includi un'altra proprietà,
shareInfo
. Questo
viene restituita quando condividi,
scheda o
recupero degli album in corso.
Nella tabella seguente sono elencate le
shareInfo
proprietà:
Proprietà | |
---|---|
sharedAlbumOptions |
Opzioni che descrivono se un utente può aggiungi contenuti multimediali elementi a o commentare un album condiviso. |
shareableUrl |
Un link all'album di Google Foto condiviso. Chiunque abbia il link può visualizzare i contenuti dell'album, pertanto è bene curarla con la massima attenzione. Il campo Un |
shareToken |
Un token utilizzato per join, abbandona, o recuperare i dettagli di un album condiviso per conto di un utente che non è proprietario. Un |
isJoinable |
True se gli utenti possono partecipare all'album. |
isJoined |
True se l'utente fa parte dell'album. Questo è sempre
true per il proprietario dell'album. |
isOwned |
True se l'utente è il proprietario dell'album. |
Annullare la condivisione di un album
Per annullare la condivisione di un album che la tua app ha condiviso in precedenza, chiama
albums.unshare
tramite
albumId
dell'album.
Oltre che l'album non viene più condiviso, verranno: avvengono nel seguente modo:
- Tutti gli utenti che non sono proprietari perderanno l'accesso all'album. Sono incluse le persone che hanno c'era l'album condivisa in modo specifico tramite l'app Google Foto.
- Tutti i contenuti aggiunti da non proprietari verranno rimossi dall'album.
- Se un utente ha già aggiunto i contenuti dell'album alla propria raccolta, i i contenuti verranno conservati nella raccolta personale.
- Il token di condivisione e l'URL condivisibile dell'album verranno invalidati.
Esempio di richiesta
REST
Ecco l'intestazione di una richiesta POST per annullare la condivisione di un album:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:unshare Content-type: application/json Authorization: Bearer oauth2-token
Il corpo della richiesta deve essere vuoto.
Se la richiesta è andata a buon fine, restituisce una risposta vuota con un messaggio HTTP codice di stato operazione riuscita. Se la richiesta non ha avuto esito positivo, viene restituita una richiesta HTTP codice di stato di errore con un messaggio di errore.
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 }
Recupero di album condivisi e token di condivisione in corso...
I dettagli di un album condiviso; e il relativo token di condivisione, vengono restituiti quando l'app condivide un album. Puoi recupera questi dettagli in un secondo momento nei seguenti modi.
Se l'utente attualmente connesso alla tua app è il proprietario o fa parte del album:
- Con
albums.get
che utilizza il pertinentialbumId
. - Con
albums.list
, se sono elementi multimediali dell'album. - Con
sharedAlbums.list
, che restituisce tutti gli album condivisi a cui l'utente fa parte o è proprietario. Per recuperare solo gli album creati dalla tua app, usaexcludeNonAppCreatedData
. - Con
sharedAlbums.get
utilizzando un token di condivisione.
Se l'utente attualmente connesso alla tua app non fa parte dell'album, puoi
recupera i dettagli di un album condiviso con
sharedAlbums.get
con un
token di condivisione valido.
Esempio di richiesta
REST
Ecco una richiesta per recuperare un album in base al suo shareToken
:
GET https://photoslibrary.googleapis.com/v1/sharedAlbums/share-token
Se la richiesta ha esito positivo, restituisce l'elemento
album
dettagli.
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 }
Partecipazione a un album condiviso
L'app può partecipare a un album condiviso per conto di un utente con la condivisione dell'album di accesso. Per farlo, devono essere vere le seguenti condizioni:
- La tua app ha creato e condiviso dell'album.
- L'utente che desideri aggiungere all'album non è il suo proprietario. Vale a dire che
Campo
isOwned
nell'albumshareInfo
è false. - Il token di condivisione è valido.
- Il campo
isJoinable
nel valoreshareInfo
dell'album è true.
REST
Ecco l'intestazione di una richiesta POST per partecipare a un album condiviso:
POST https://photoslibrary.googleapis.com/v1/sharedAlbums:join Content-type: application/json Authorization: Bearer oauth2-token
Nel corpo della richiesta, specifica shareToken
.
{ "shareToken": "share-token" }
La richiesta POST restituisce l'elemento album
condiviso
la tua app si è unita per conto dell'utente.
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 }
Uscita da un album condiviso
La tua app può abbandonare un album condiviso per conto di un utente, utilizzando la condivisione dell'album di accesso. Per farlo, devono essere vere le seguenti condizioni:
- L'app ha creato e condiviso l'album.
- Attualmente l'utente fa parte dell'album. Vale a dire che il campo
isJoined
nella tracciashareInfo
dell'album è vera. - L'utente collegato alla tua app non è il proprietario dell'album. Vale a dire che
Il campo
isOwned
nella colonnashareInfo
dell'album è falso.
REST
Ecco l'intestazione di una richiesta POST per uscire da un album condiviso:
POST https://photoslibrary.googleapis.com/v1/sharedAlbums:leave Content-type: application/json Authorization: Bearer oauth2-token
Nel corpo della richiesta, specifica shareToken
.
{ "shareToken": "share-token" }
Se la richiesta è andata a buon fine, restituisce una risposta vuota con un messaggio HTTP codice di stato operazione riuscita. Se la richiesta non ha avuto esito positivo, viene restituita una richiesta HTTP codice di stato di errore con un messaggio di errore.
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 }
Proprietà degli elementi multimediali condivisi
Elementi multimediali che appartengono a
gli album condivisi dalla tua app contengono
una proprietà aggiuntiva,
contributorInfo
Questa proprietà viene inclusa solo quando viene elencato il
contenuti di un album condiviso.
La proprietà contributorInfo
include il nome dell'utente che ha aggiunto i contenuti multimediali
elemento all'album e un
URL di base del profilo
dell'immagine.
Ecco un esempio:
{ "id: "media-item-id", ..., "mediaMetadata": { ... } "contributorInfo": { "profilePictureBaseUrl": "profile-picture-base-url_use-only-with-parameters", "displayName": "name-of-user" } }