Dans Google Photos, vous pouvez organiser vos photos et d'autres éléments multimédias à l'aide d'albums. Un élément multimédia peut être associé à un ou plusieurs albums. Pour associer des éléments multimédias à 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 champs d'application d'autorisation suivants:
photoslibrary.appendonly
photoslibrary.sharing
Pour modifier le titre ou la photo de couverture des albums après leur création, utilisez le champ d'application photoslibrary.edit.appcreateddata
.
Création d'un album
Pour créer un album, appelez albums.create
et incluez title
. Notez que le champ title
est limité à 500 caractères.
L'appel renvoie un album. Votre application peut stocker l'ID d'album à partir de ces informations et l'utiliser pour importer des éléments multimédias dans l'album spécifique.
REST
Voici un en-tête pour 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 l'opération réussit, la réponse renvoie un 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 }
Modification du titre et de la photo de l'album
Pour modifier le titre ou la photo de couverture d'un album, créez un album update
call
avec l'identifiant de l'album et incluez dans la requête le nouveau titre ou le nouvel ID d'élément multimédia de la photo de couverture. Vous devrez utiliser le champ d'application de l'autorisation photoslibrary.edit.appcreateddata
pour effectuer la modification.
Le titre des albums ne doit pas dépasser 500 caractères. Les éléments de couverture médiatiques doivent appartenir au propriétaire de l'album et appartenir à l'album dont ils serviront de couverture.
REST
Voici l'en-tête de requête PATCH permettant de mettre à jour les éléments title
et coverPhotomediaItemId
d'un album.
PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId
Cette requête détermine les propriétés qui sont mises à jour en incluant un masque de champ, indiqué par les paramètres updateMask
dans l'URL. Le paramètre updateMask
doit être transmis pour chaque propriété d'album mise à jour.
Pour chaque propriété que vous mettez à jour, incluez les informations la concernant dans le corps de la requête:
{ "title": "new-album-title", "coverPhotoMediaItemId": "new-cover-media-item-id" }
Si l'opération réussit, la réponse renvoie les informations album
mises à jour:
{ "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
Vous pouvez ajouter des éléments multimédias de la bibliothèque Google Photos de l'utilisateur à un album en appelant albums.batchAddMediaItems
.
Les éléments multimédias sont ajoutés à la fin de l'album dans l'ordre indiqué dans cet appel.
La requête n'aboutira pas si un élément multimédia ou un album non valide est spécifié. Les réussites partielles ne sont pas acceptées.
Chaque album peut contenir jusqu'à 20 000 éléments multimédias. Les requêtes d'ajout d'éléments dépassant cette limite échoueront.
Notez que vous ne pouvez ajouter que des éléments multimédias qui ont été importés par votre application à des albums créés par cette dernière. Les éléments multimédias doivent également se trouver dans la bibliothèque de l'utilisateur. Pour les albums partagés, ils doivent être appropriés par l'utilisateur, ou l'utilisateur doit être un collaborateur qui a 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 un en-tête pour 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 l'opération réussit, la réponse renvoie une réponse JSON vide et l'état "HTTP Success" (Opération HTTP réussie).
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 }
Suppression d'éléments multimédias d'un album
Vous pouvez supprimer des éléments multimédias que vous avez ajoutés à un album en appelant albums.batchRemoveMediaItems
.
L'ensemble de la requête échouera si vous spécifiez des éléments multimédias non valides. Le succès partiel n'est pas accepté.
Notez que vous ne pouvez supprimer que les éléments multimédias que votre application a ajoutés à un album ou qui ont été créés dans un album dans le cadre d'une importation. Pour les albums partagés, vous ne pouvez supprimer des éléments ajoutés par d'autres collaborateurs que si vous agissez 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 un en-tête pour 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 l'opération réussit, la réponse renvoie une réponse JSON vide et l'état "HTTP Success" (Opération HTTP réussie).
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 }