Administrar álbumes

En Google Fotos, puedes organizar fotos y otros elementos multimedia con álbumes. Un elemento multimedia se puede asociar a uno o más álbumes. Para comenzar a asociar elementos multimedia con un álbum, primero debes crearlo.

Permisos de autorización obligatorios

La creación de álbumes requiere el permiso photoslibrary.appendonly.

Para cambiar el título o la foto de portada de los álbumes después de su creación, se requiere el permiso photoslibrary.edit.appcreateddata.

Para obtener más información sobre los permisos, consulta Permisos de autorización.

Cómo crear un álbum nuevo

Para crear un álbum, llama a albums.create y, luego, incluye el title. Ten en cuenta que title está limitado a 500 caracteres.

La llamada muestra un álbum. Tu app puede almacenar el ID del álbum a partir 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 se realiza correctamente, la respuesta muestra un álbum:

{
  "productUrl": "album-product-url",
  "id": "album-id",
  "title": "album-title",
  "isWriteable": "whether-you-can-write-to-this-album"
}

Cómo recuperar detalles de álbumes

Para recuperar los detalles de un álbum existente creado por tu app, llama a albums.get y, luego, incluye el albumId del álbum que deseas recuperar.

La llamada muestra un álbum.

REST

Este es el encabezado de una solicitud GET:

GET https://photoslibrary.googleapis.com/v1/albums/{albumId}
Content-type: application/json
Authorization: Bearer oauth2-token

El cuerpo de la solicitud se ve de la siguiente manera:

{
  "albumId": album-id
}

Si se realiza correctamente, la respuesta muestra un álbum:

{
  "id": album-id,
  "title": album-title,
  "productUrl": album-product-url,
  "mediaItemsCount": media-items-count,
  "coverPhotoBaseUrl": cover-photo-base-url,
  "coverPhotoMediaItemId": cover-photo-media-item-id
}

Cómo cambiar los títulos y las fotos de portada de los álbumes

Para cambiar el título o la foto de portada de un álbum, crea un album update call con el identificador del álbum y, luego, incluye el título nuevo o el ID del elemento multimedia de la foto de portada nueva en la solicitud. Deberás usar el permiso de autorización photoslibrary.edit.appcreateddata para realizar el cambio.

Los títulos de los álbumes no pueden tener más de 500 caracteres. Los elementos multimedia de la portada deben ser propiedad del propietario del álbum y pertenecen al álbum del que serán la portada.

REST

Este es un encabezado de solicitud PATCH para actualizar el title y el coverPhotomediaItemId de un álbum.

PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId

Esta solicitud determina qué propiedades se actualizan, ya que incluye una máscara de campo, que se indica con los parámetros updateMask en la URL. Se debe pasar el parámetro updateMask para cada propiedad del álbum que se actualiza.

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 correctamente, la respuesta muestra los detalles actualizados de album:

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

Cómo agregar elementos multimedia a un álbum

Puedes llamar a albums.batchAddMediaItems para agregar elementos multimedia que creó tu app a los álbumes que esta creó. Los elementos multimedia se agregan al final del álbum en el orden que se indica 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. Las solicitudes para agregar más elementos que superen este límite fallarán.

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 se ejecuta de forma correcta, la respuesta muestra una respuesta JSON vacía y el estado de éxito HTTP.

Cómo quitar elementos multimedia de un álbum

Para quitar elementos multimedia que creó tu app de los álbumes que creó tu app, llama a albums.batchRemoveMediaItems.

Si se especifican elementos multimedia no válidos, fallará toda la solicitud. No se admite el éxito parcial.

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 se realiza correctamente, la respuesta muestra una respuesta JSON vacía y el estado HTTP 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
}