Administrar álbumes

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
}