Dans Google Photos, vous pouvez organiser vos photos et autres éléments multimédias dans des albums. Un élément multimédia peut être associé à un ou plusieurs albums. Pour commencer l'association d'éléments multimédias avec un album, vous devez d'abord créer l'album.
Champs d'application des autorisations requis
Pour créer un album, votre application doit demander au moins l'un des éléments suivants champs d'application des autorisations:
photoslibrary.appendonly
photoslibrary.sharing
Pour modifier le titre ou la photo de couverture des albums après leur création, utilisez les
photoslibrary.edit.appcreateddata
.
Création d'un album
Pour créer un album, appelez
albums.create
et inclure
title
. Notez que title
est limité à 500 caractères.
L'appel renvoie une album. Votre application peut stocker l'ID de l'album à partir de ces informations et l'utiliser pour importer des éléments multimédias à l'album concerné.
REST
Voici l'en-tête d'une requête POST:
POST https://photoslibrary.googleapis.com/v1/albums Content-type: application/json Authorization: Bearer oauth2-token
Le corps de la requête se présente comme suit:
{ "album": { "title": "new-album-title" } }
Si la requête aboutit, la réponse renvoie une album:
{ "productUrl": "album-product-url", "id": "album-id", "title": "album-title", "isWriteable": "whether-you-can-write-to-this-album" }
Java
try { Album createdAlbum = photosLibraryClient.createAlbum("My Album"); // The createdAlbum object contains properties of an album String productUrl = createdAlbum.getProductUrl(); // coverPhotoBaseUrl shouldn't be used as is. Append parameters to base URLs before use String albumCoverImage = createdAlbum.getCoverPhotoBaseUrl() + "=w2048-h1024"; boolean isWriteable = createdAlbum.getIsWriteable(); } catch (ApiException e) { // Handle error }
PHP
try { $newAlbum = PhotosLibraryResourceFactory::album("My Album"); $createdAlbum = $photosLibraryClient->createAlbum($newAlbum); // The createdAlbum object contains properties of an album $albumId = $createdAlbum->getId(); $productUrl = $createdAlbum->getProductUrl(); // coverPhotoBaseUrl shouldn't be used as is. Append parameters to base URLs before use $albumCoverImage = $createdAlbum->getCoverPhotoBaseUrl() . '=w2048-h1024'; $isWriteable = $createdAlbum->getIsWriteable(); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
Modifier les titres d'album et les photos de couverture
Pour modifier le titre ou la photo de couverture d'un album, créez une album update
call
avec l'icône
identifiant de l'album et inclure le nouveau titre ou la nouvelle photo de couverture
dans la requête. Vous devez utiliser la
photoslibrary.edit.appcreateddata
permission pour effectuer la modification.
Les titres d'album ne doivent pas dépasser 500 caractères. Couverture d'éléments multimédias doivent appartenir au propriétaire de l'album et faire partie de l'album en tant que couverture. .
REST
Voici un en-tête de requête PATCH permettant de mettre à jour le title
d'un album et
coverPhotomediaItemId
PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId
Cette requête détermine les propriétés en cours de mise à jour en incluant
Un masque de champ, indiqué par les paramètres updateMask
dans
URL. Le paramètre updateMask
doit être transmis pour chaque
de l'album en cours de mise à jour.
Pour chaque propriété que vous mettez à jour, indiquez ses informations dans le corps de la requête:
{ "title": "new-album-title", "coverPhotoMediaItemId": "new-cover-media-item-id" }
Si la requête aboutit, la réponse renvoie le album
mis à jour.
détails:
{ "id": "album-id", "title": "new-album-title", "productUrl": "album-product-url", "isWriteable": "true-if-user-can-write-to-this-album", "mediaItemsCount": "number-of-media-items-in-album", "coverPhotoBaseUrl": "cover-photo-base-url_use-only-with-parameters", "coverPhotoMediaItemId": "new-cover-media-item-id" }
Java
try { // Update the cover photo of the album given a MediaItem object. Album updatedAlbum = photosLibraryClient.updateAlbumCoverPhoto(album, newCoverMediaItem); // Alternatively, you can update the cover photo of the album given a media item ID. // The specified media item identifier must be not null or empty. // Album updatedAlbum = photosLibraryClient.updateAlbumCoverPhoto(album, "new-cover-media-item-id"); } catch (ApiException e) { // Handle error } try { // Update the title of the album. // The new title must not be null or empty. Album updatedAlbum = photosLibraryClient.updateAlbumTitle(album, "new-album-title"); } catch (ApiException e) { // Handle error }
PHP
try { // ID of the album to update. $albumId = "ALBUM_ID"; // Media item ID of the new cover photo. // Must not be null or empty. $newCoverMediaItemId = "new-cover-media-item-id"; // Update the cover photo of the album. $mediaItem = $photosLibraryClient->updateAlbumCoverPhoto($albumId, $newCoverMediaItemId); } catch (\Google\ApiCore\ApiException $e) { // Handle error } try { // ID of the album to update. $albumId = "ALBUM_ID"; // New title of the album. // Must not be null or empty. $newTitle = "new-album-title"; // Update the title of the album. $mediaItem = $photosLibraryClient->updateAlbumTitle($albumId, $newTitle); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
Ajouter des éléments multimédias à un album
Pour ajouter des éléments multimédias de la bibliothèque Google Photos de l'utilisateur à un album, procédez comme suit :
Appel en cours
albums.batchAddMediaItems
Les éléments multimédias sont ajoutés à la fin de l'album dans l'ordre indiqué dans cet appel.
L'intégralité de la requête échoue si un élément multimédia ou un album spécifié n'est pas valide. Les succès partiels ne sont pas acceptés.
Chaque album peut contenir jusqu'à 20 000 éléments multimédias. Les demandes d'ajout d'éléments au-delà de cette limite échouera.
Notez que vous ne pouvez ajouter que des éléments multimédias téléchargée par votre application sur albums contenant votre application créés. Éléments multimédias doit également figurer dans la bibliothèque de l'utilisateur. Pour les albums partagés, ils doivent : appartenir au utilisateur ou l'utilisateur doit être un collaborateur ayant déjà rejoint l'album.
Pour ajouter des éléments multimédias à un album, appelez
albums.batchAddMediaItems
avec les identifiants des éléments multimédias et de l'album.
REST
Voici l'en-tête d'une requête POST:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems Content-type: application/json Authorization: Bearer oauth2-token
Le corps de la requête se présente comme suit:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
Si la requête aboutit, la réponse renvoie une réponse JSON vide et le code État de réussite.
Java
try { // List of media item IDs to add List<String> mediaItemIds = Arrays .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"); // ID of the album to add media items to String albumId = "ALBUM_ID"; // Add all given media items to the album photosLibraryClient.batchAddMediaItemsToAlbum(albumId, mediaItemIds); } catch (ApiException e) { // An exception is thrown if the media items could not be added }
PHP
try { // List of media item IDs to add $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"]; // ID of the album to add media items to $albumId = "ALBUM_ID"; // Add all given media items to the album $response = $photosLibraryClient->batchAddMediaItemsToAlbum($albumId, $mediaItemIds); } catch (\Google\ApiCore\ApiException $e) { // Handle Error }
Supprimer des éléments multimédias d'un album
Vous pouvez supprimer les éléments multimédias que vous avez ajoutés d'un album en appelant
albums.batchRemoveMediaItems
La demande échouera si des éléments multimédias non valides sont spécifiés. Partiellement succès n'est pas pris en charge.
Notez que vous ne pouvez supprimer que les éléments multimédias que votre application a ajouté des éléments à un album ou qui ont été créés dans un album l'importation. Pour les albums partagés, vous ne pouvez supprimer des éléments ajoutés par d'autres collaborateurs que si vous agissent au nom du propriétaire de l'album.
Pour supprimer des éléments multimédias d'un album, appelez
albums.batchRemoveMediaItems
avec les identifiants des éléments multimédias et de l'album.
REST
Voici l'en-tête d'une requête POST:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems Content-type: application/json Authorization: Bearer oauth2-token
Le corps de la requête se présente comme suit:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
Si la requête aboutit, la réponse renvoie une réponse JSON vide et le code État de réussite.
Java
try { // List of media item IDs to remove List<String> mediaItemIds = Arrays .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"); // ID of the album to remove media items from String albumId = "ALBUM_ID"; // Remove all given media items from the album photosLibraryClient.batchRemoveMediaItemsFromAlbum(albumId, mediaItemIds); } catch (ApiException e) { // An exception is thrown if the media items could not be removed }
PHP
try { // List of media item IDs to remove $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"]; // ID of the album to remove media items from $albumId = "ALBUM_ID"; // Remove all given media items from the album $response = $photosLibraryClient->batchRemoveMediaItemsFromAlbum($albumId, $mediaItemIds); } catch (\Google\ApiCore\ApiException $e) { // Handle Error }