En Google Fotos, puedes organizar las fotos y otros elementos multimedia en álbumes. Un elemento multimedia se puede asociar con uno o más álbumes. Para comenzar a asociar elementos multimedia con un álbum, primero debes crear el álbum.
Permisos de autorización obligatorios
Para crear un álbum, tu app debe solicitar al menos uno de los siguientes elementos Alcances de autorización:
photoslibrary.appendonly
photoslibrary.sharing
Para cambiar el título o la foto de portada de un álbum después de su creación, usa la
Permiso de photoslibrary.edit.appcreateddata
.
Cómo crear un álbum nuevo
Para crear un álbum, llama a
albums.create
e incluir
el title
. Ten en cuenta que title
tiene una restricción de 500 caracteres.
La llamada muestra un álbum. Tu app puede hacer lo siguiente: almacenar el ID del álbum de esta información y usarlo para subir elementos multimedia al álbum específico.
REST
Este es un encabezado para una solicitud POST:
POST https://photoslibrary.googleapis.com/v1/albums Content-type: application/json Authorization: Bearer oauth2-token
El cuerpo de la solicitud se ve de la siguiente manera:
{ "album": { "title": "new-album-title" } }
Si no hay errores, la respuesta devuelve álbum:
{ "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 }
Cambiar los títulos de los álbumes y las fotos de portada
Para cambiar el título de un álbum o la foto de portada, crea una album update
call
con la
identificador del álbum e incluye el nuevo título o la nueva foto de portada
el ID de elemento multimedia de la solicitud. Deberás usar el
photoslibrary.edit.appcreateddata
el permiso de la autorización para realizar el cambio.
Los títulos de álbumes no pueden tener más de 500 caracteres de longitud. Cómo cubrir elementos multimedia deben ser propiedad del propietario del álbum y pertenecer al álbum, serán una portada .
REST
Este es un encabezado de solicitud PATCH para actualizar la title
de un álbum y
coverPhotomediaItemId
PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId
Esta solicitud determina las propiedades que se actualizan al incluir
una máscara de campo, indicada por los parámetros updateMask
en el
URL. El parámetro updateMask
se debe pasar para cada
propiedad del álbum que se está actualizando.
Para cada propiedad que actualices, incluye sus detalles en el cuerpo de la solicitud:
{ "title": "new-album-title", "coverPhotoMediaItemId": "new-cover-media-item-id" }
Si se ejecuta de forma correcta, la respuesta muestra el album
actualizado.
detalles:
{ "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 }
Cómo agregar elementos multimedia a un álbum
Puedes agregar elementos multimedia de la biblioteca de Google Fotos del usuario a un álbum de las siguientes maneras:
llamando
albums.batchAddMediaItems
Los elementos multimedia se agregan al final del álbum en el orden indicado en esta llamada.
La solicitud fallará si se especifica un álbum o elemento multimedia no válido. No se admite parcialmente la ejecución correcta.
Cada álbum puede contener hasta 20,000 elementos multimedia. Solicitudes para agregar más elementos que superará este límite fallará.
Ten en cuenta que solo puedes agregar elementos multimedia que se hayan subido por tu aplicación a álbumes que tiene tu aplicación crearla. Elementos multimedia también debe estar en la biblioteca del usuario. En el caso de los álbumes compartidos, deben será propiedad del usuario o el usuario debe ser un colaborador que ya se haya unido al álbum.
Para agregar elementos multimedia a un álbum, llama a
albums.batchAddMediaItems
con los identificadores de los elementos multimedia y el álbum.
REST
Este es un encabezado para una solicitud POST:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems Content-type: application/json Authorization: Bearer oauth2-token
El cuerpo de la solicitud se ve de la siguiente manera:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
Si no hay errores, la respuesta devuelve una respuesta JSON vacía Estado de éxito.
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 }
Cómo quitar elementos multimedia de un álbum
Para quitar los elementos multimedia que agregaste de un álbum, llama a
albums.batchRemoveMediaItems
La solicitud fallará si se especifican elementos multimedia no válidos. Parcial no se admite el éxito.
Ten en cuenta que solo puedes quitar elementos multimedia que tu app agregó contenido a un álbum o que hayan sido creado en un álbum como parte de una carga. Para álbumes que se compartan, solo podrás eliminar los elementos que hayan agregado otros colaboradores si actúan en nombre del propietario del álbum.
Para quitar elementos multimedia de un álbum, llama a
albums.batchRemoveMediaItems
con los identificadores de los elementos multimedia y el álbum.
REST
Este es un encabezado para una solicitud POST:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems Content-type: application/json Authorization: Bearer oauth2-token
El cuerpo de la solicitud se ve de la siguiente manera:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
Si no hay errores, la respuesta devuelve una respuesta JSON vacía Estado de éxito.
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 }