Gerenciar álbuns

No Google Fotos, você pode usar álbuns para organizar fotos e outros itens de mídia. Um item de mídia pode ser associado a um ou mais álbuns. Para começar a associar itens de mídia em um álbum, é necessário criar o álbum primeiro.

Escopos de autorização necessários

Para criar um álbum, seu app precisa solicitar pelo menos uma das seguintes opções escopos de autorização:

  • photoslibrary.appendonly
  • photoslibrary.sharing

Para alterar o título ou a foto da capa de álbuns após sua criação, use o escopo photoslibrary.edit.appcreateddata.

Criar um novo álbum

Para criar um álbum, chame albums.create e incluem o title. title pode ter até 500 caracteres.

A chamada retorna uma álbum. Seu app pode armazenar o ID do álbum a partir dessas informações e usá-lo para Como fazer upload de itens de mídia ao álbum específico.

REST

Aqui está um cabeçalho para uma solicitação POST:

POST https://photoslibrary.googleapis.com/v1/albums
Content-type: application/json
Authorization: Bearer oauth2-token

O corpo da solicitação tem a seguinte aparência:

{
  "album": {
    "title": "new-album-title"
  }
}

Se bem-sucedida, a resposta retornará um á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
}

Alterar o título dos álbuns e as fotos da capa

Para alterar o título ou a foto da capa de um álbum, crie uma album update call com o do álbum e incluem o novo título ou o nome ID do item de mídia na solicitação. Você vai precisar usar photoslibrary.edit.appcreateddata escopo da autorização para fazer a alteração.

Os títulos dos álbuns não podem ter mais de 500 caracteres. Cobrir itens de mídia devem pertencer ao proprietário do álbum e ao álbum em que serão a capa pelas quais

REST

Este é um cabeçalho de solicitação PATCH para atualizar os valores title e coverPhotomediaItemId.

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

Essa solicitação determina quais propriedades estão sendo atualizadas incluindo uma máscara de campo, indicada pelos parâmetros updateMask na URL. O parâmetro updateMask precisa ser transmitido para cada a propriedade do álbum que está sendo atualizada.

Para cada propriedade que você está atualizando, inclua os detalhes em do corpo da solicitação:

{
  "title": "new-album-title",
  "coverPhotoMediaItemId": "new-cover-media-item-id"
}

Se for bem-sucedida, a resposta vai retornar o album atualizado detalhes:

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

Como adicionar itens de mídia a um álbum

Para adicionar itens de mídia da biblioteca do Google Fotos do usuário a um álbum, chamar albums.batchAddMediaItems Os itens de mídia são adicionados ao final do álbum na ordem informada nesta chamada.

Toda a solicitação falhará se um item de mídia ou álbum inválido for especificado. Não há suporte para sucesso parcial.

Cada álbum pode conter até 20.000 itens de mídia. Solicitações para adicionar mais itens que ultrapassar esse limite não vai funcionar.

Só é possível adicionar itens de mídia que foram enviados pelo seu aplicativo para álbuns que seu aplicativo tem criados. Itens de mídia também precisam estar na biblioteca do usuário. Para os álbuns compartilhados, eles precisam: ser pertencente ao usuário ou o usuário deve ser um colaborador que já esteja participando do álbum.

Para adicionar itens de mídia a um álbum, chame albums.batchAddMediaItems com os identificadores dos itens de mídia e do álbum.

REST

Aqui está um cabeçalho para uma solicitação POST:

POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems
Content-type: application/json
Authorization: Bearer oauth2-token

O corpo da solicitação tem esta aparência:

{
   "mediaItemIds": [
     "media-item-id",
     "another-media-item-id",
     ...
   ]
}

Se bem-sucedido, a resposta retornará uma resposta JSON vazia e o HTTP Status de sucesso.

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
}

Como remover itens de mídia de um álbum

Você pode remover itens de mídia adicionados de um álbum chamando albums.batchRemoveMediaItems

Toda a solicitação falhará se itens de mídia inválidos forem especificados. Parcial não é compatível.

Só é possível remover itens de mídia que seu aplicativo adicionou um álbum a um álbum ou que foram criada em um álbum como parte de um enviar. Para álbuns compartilhados, você só poderá remover itens adicionados por outros colaboradores se estiver agindo em nome do proprietário do álbum.

Para remover itens de mídia de um álbum, chame albums.batchRemoveMediaItems com os identificadores dos itens de mídia e do álbum.

REST

Aqui está um cabeçalho para uma solicitação POST:

POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems
Content-type: application/json
Authorization: Bearer oauth2-token

O corpo da solicitação tem esta aparência:

{
   "mediaItemIds": [
     "media-item-id",
     "another-media-item-id",
     ...
   ]
}

Se bem-sucedido, a resposta retornará uma resposta JSON vazia e o HTTP Status de sucesso.

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
}