Partager le contenu multimédia

Les albums créés par votre application peuvent être partagés entre les utilisateurs, avec des options pour autoriser les utilisateurs de commenter ou de contribuer leurs propres éléments multimédias à l'album.

Pour partager un album via l'API Library de Google Photos, votre application doit procéder comme suit:

  1. Créer un album au nom d'un utilisateur
  2. Définissez l'album comme partagé.

Champ d'application d'authentification requis

Pour partager du contenu, votre application doit demander le photoslibrary.sharing champ d'application de l'autorisation.

Partager un album

Avant de partager un album, tenez compte des points suivants:

  • Votre application ne peut partager que les albums qu'elle a créés. les albums créés par d'autres applications ; y compris Google Photos, ne peuvent pas être partagés par votre application.
  • Lorsque votre application partage un album via l'API Library, un URL partageable est généré afin que n'importe qui puisse accéder à l'album.
  • Le propriétaire d'un album partagé via l'API peut effectuer les actions suivantes : désactiver le partage par lien ou annuler le partage de l'album dans l'application Google Photos, ce qui pourrait empêcher votre de rejoindre de nouveaux utilisateurs.

Pour partager un album:

  1. Suivez le Consignes relatives à l'expérience utilisateur obtenir l'autorisation explicite de l'utilisateur pour créer un album partagé ;
  2. Créez l'album, et enregistrez sa albumId. Si vous avez déjà créé l'album, vous pouvez récupérer ses albumId répertorier les albums de l'utilisateur.
  3. Appeler albums.share avec le albumId approprié, ainsi que les options de partage de votre choix défini.
  4. Enregistrez le shareToken dans la réponse. Le jeton de partage est un identifiant associé à un album partagé. utilisables avec différents comptes d'utilisateurs.
  5. Un autre utilisateur peut désormais s'authentifier auprès de votre application, puis join, quitter, ou récupérer les détails de l'album partagé à l'aide de son shareToken.

Options de partage

Vous pouvez définir les options suivantes lorsque vous partagez un album à l'aide de l'icône sharedAlbumOptions . Si les options ne sont pas définies explicitement, les valeurs par défaut sont utilisées.

Propriété Valeur par défaut Description
isCollaborative false Détermine si les autres utilisateurs de Google Photos peuvent ajouter du contenu au album partagé.
isCommentable false Détermine si les autres utilisateurs de Google Photos peuvent ajouter des commentaires au album partagé.

Exemple de requête

La requête suivante permet de partager un album en appelant albums.share avec des options. A Propriété shareInfo est renvoyée dans la réponse qui décrit l'état partage de propriétés.

REST

Voici un en-tête de requête POST permettant de partager un album:

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

Dans le corps de la requête, spécifiez les options de partage.

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

Cette requête renvoie la réponse suivante:

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

Propriétés des albums partagés

Pour les albums qui ont été créés et partagés par votre application, toutes les réponses qui renvoyer un album inclure une propriété supplémentaire, shareInfo Ce est renvoyée lors du partage, listing ou récupération des albums.

Le tableau suivant répertorie les shareInfo propriétés:

Propriétés
sharedAlbumOptions Les options qui décrivent si quelqu'un peut ajouter des fichiers multimédias ajouter un élément ou un commentaire à un album partagé.
shareableUrl

Un lien vers l'album Google Photos partagé Toute personne disposant du lien peut afficher le contenu de l'album, il doit donc être traité avec précaution.

Le champ shareableUrl n'est renvoyé que si l'album contient partage par lien est activé. Si un utilisateur est déjà associé à un album n'est pas partagé par un lien, il peut utiliser le productUrl de l'album pour y accéder à la place.

Une shareableUrl n'est plus valide si le propriétaire désactive le lien dans l'application Google Photos, ou si l'album n'est plus partagé.

shareToken

Un jeton qui est utilisé pour join, quitter, ou récupérer les détails d'un album partagé au nom d'un utilisateur qui n'est pas le propriétaire.

Une shareToken n'est plus valide si le propriétaire désactive le lien dans l'application Google Photos, ou si l'album n'est plus partagé.

isJoinable True si les utilisateurs peuvent participer à l'album.
isJoined True si l'utilisateur est associé à l'album. Il s'agit toujours sur true pour le propriétaire de l'album.
isOwned True si l'utilisateur est propriétaire de l'album.

Annuler le partage d'un album

Pour annuler le partage d'un album que votre application a déjà partagé, appelez albums.unshare à l'aide de albumId de l'album.

Outre la suppression du partage de l'album, les éléments suivants se produire:

  • Les utilisateurs qui ne sont pas propriétaires de l'album ne pourront plus y accéder. Cela inclut les personnes qui ont ont reçu l'album spécifiquement partagés avec eux via l'application Google Photos.
  • Tous les contenus ajoutés par des personnes qui ne sont pas propriétaires de l'album sont supprimés.
  • Si un utilisateur a déjà ajouté le contenu de l'album à sa bibliothèque, contenus seront conservés dans leur bibliothèque.
  • Le jeton de partage et l'URL partageable de l'album ne seront plus valides.

Exemple de requête

REST

Voici un en-tête de requête POST permettant d'annuler le partage d'un album:

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

Le corps de la requête doit être vide.

Si la requête aboutit, elle renvoie une réponse vide avec un code code d'état de réussite. Si la requête échoue, une réponse HTTP avec un message d'erreur.

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
}

Récupérer des albums partagés et des jetons de partage

Les détails d'un album partagé y compris son jeton de partage, sont renvoyés lorsque votre application partage un album. Vous pouvez et récupérer ces détails par la suite de différentes manières.

Si l'utilisateur actuellement connecté à votre application en est le propriétaire ou qu'il y est associé album:

  • Avec albums.get utilisant le les albumId pertinents.
  • Avec albums.list, s'il y a sont des éléments multimédias de l'album.
  • Avec sharedAlbums.list, qui renvoie tous les albums partagés auxquels l'utilisateur est joint ou qui lui appartient. Pour récupérer seuls les albums créés par votre application, utilisez la excludeNonAppCreatedData .
  • Avec sharedAlbums.get à l'aide d'un jeton de partage.

Si l'utilisateur actuellement connecté à votre application n'est pas associé à l'album, vous pouvez récupérer les détails d'un album partagé avec sharedAlbums.get à l'aide d'un et un jeton de partage valide.

Exemple de requête

REST

Voici une requête permettant d'obtenir un album à l'aide de son shareToken:

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

Si la requête aboutit, il renvoie le code <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
}

Connexion à un album partagé

Votre application peut rejoindre un album partagé au nom d'un utilisateur grâce au partage de l'album à partir d'un jeton d'accès. Pour ce faire, les conditions suivantes doivent être remplies:

  • Votre application présente créé et partagé le album.
  • L'utilisateur que vous souhaitez associer à l'album n'en est pas le propriétaire. En d'autres termes, Champ isOwned dans le fichier shareInfo est "false".
  • Le jeton de partage est valide.
  • Le champ isJoinable du champ shareInfo de l'album est défini sur "true".

REST

Voici un en-tête de demande POST pour rejoindre un album partagé:

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

Dans le corps de la requête, spécifiez shareToken.

{
  "shareToken": "share-token"
}

La requête POST renvoie le album partagé. que votre application a rejoint au nom de l'utilisateur.

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
}

Sortie d'un album partagé

Votre application peut quitter un album partagé pour le compte d'un utilisateur, à l'aide du paramètre de partage de l'album à partir d'un jeton d'accès. Pour ce faire, les conditions suivantes doivent être remplies:

  • Votre application a créé et partagé l'album.
  • L'utilisateur est actuellement associé à l'album. Autrement dit, le champ isJoined dans la vidéo shareInfo de l'album est "true".
  • L'utilisateur connecté à votre application n'est pas le propriétaire de l'album. En d'autres termes, La valeur du champ isOwned dans le champ shareInfo de l'album est "false".

REST

Voici un en-tête de requête POST pour quitter un album partagé:

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

Dans le corps de la requête, spécifiez shareToken.

{
  "shareToken": "share-token"
}

Si la requête aboutit, elle renvoie une réponse vide avec un code code d'état de réussite. Si la requête échoue, une réponse HTTP avec un message d'erreur.

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
}

Propriétés des éléments multimédias partagés

Éléments multimédias appartenant à les albums partagés par votre application contiennent une propriété supplémentaire, contributorInfo Cette propriété n'est incluse que lorsque vous indiquez la valeur contenu d'un album partagé.

La propriété contributorInfo inclut le nom de l'utilisateur qui a ajouté l'élément multimédia. un élément à l'album, et une URL de base à son profil l'image.

Exemple :

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