Condividi contenuti multimediali

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:

  1. Creare un album per conto di un utente.
  2. Imposta l'album come condiviso.
di Gemini Advanced.

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:

  1. Segui le linee guida per l'esperienza utente e ottenere il consenso esplicito dell'utente per la creazione di un album condiviso.
  2. Crea l'album. e registrare i suoi albumId. Se hai già creato l'album, puoi recupera il suo albumId per pubblicare gli album dell'utente in una scheda.
  3. Chiama il numero albums.share tramite il albumId pertinente, insieme ai le opzioni di condivisione che vuoi per iniziare.
  4. Registra il shareToken nella risposta. Il token di condivisione è un identificatore di un album condiviso che possono essere utilizzate in diversi account utente.
  5. 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 shareableUrl viene restituito solo se l'album ha condivisione tramite link attivata. Se un utente fa già parte di un album che non è condiviso tramite link, può usare l'elemento productUrl dell'album per accedervi.

Un shareableUrl viene invalidato se il proprietario disattiva il link condivisione nell'app Google Foto o se l'album non è condiviso.

shareToken

Un token utilizzato per join, abbandona, o recuperare i dettagli di un album condiviso per conto di un utente che non è proprietario.

Un shareToken viene invalidato se il proprietario disattiva il link condivisione nell'app Google Foto o se l'album non è condiviso.

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:

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'album shareInfo è false.
  • Il token di condivisione è valido.
  • Il campo isJoinable nel valore shareInfo dell'album è true.
di Gemini Advanced.

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 traccia shareInfo dell'album è vera.
  • L'utente collegato alla tua app non è il proprietario dell'album. Vale a dire che Il campo isOwned nella colonna shareInfo 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"
  }
}