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:
- Créer un album au nom d'un utilisateur
- 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:
- Suivez le Consignes relatives à l'expérience utilisateur obtenir l'autorisation explicite de l'utilisateur pour créer un album partagé ;
- Créez l'album,
et enregistrez sa
albumId. Si vous avez déjà créé l'album, vous pouvez récupérer sesalbumIdrépertorier les albums de l'utilisateur. - Appeler
albums.shareavec lealbumIdapproprié, ainsi que les options de partage de votre choix défini. - Enregistrez le
shareTokendans la réponse. Le jeton de partage est un identifiant associé à un album partagé. utilisables avec différents comptes d'utilisateurs. - 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 Une |
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 |
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.getutilisant le lesalbumIdpertinents. - 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 laexcludeNonAppCreatedData. - 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
isOwneddans le fichiershareInfoest "false". - Le jeton de partage est valide.
- Le champ
isJoinabledu champshareInfode 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
isJoineddans la vidéoshareInfode 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
isOwneddans le champshareInfode 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"
}
}