Gerenciar álbuns

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

Escopos de autorização necessários

A criação de álbuns requer o escopo photoslibrary.appendonly.

Para mudar o título ou a foto da capa dos álbuns após a criação, é necessário o escopo photoslibrary.edit.appcreateddata.

Para mais informações sobre escopos, consulte Escopos de autorização.

Criar um novo álbum

Para criar um álbum, chame albums.create e inclua o title. O title é restrito a 500 caracteres.

A chamada retorna um álbum. O app pode armazenar o ID do álbum com essas informações e usá-lo para fazer upload de itens de mídia para o á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 esta aparência:

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

Se for bem-sucedido, a resposta vai retornar um álbum:

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

Extrair detalhes do álbum

Para recuperar os detalhes de um álbum criado pelo app, chame albums.get e inclua o albumId do álbum que você quer buscar.

A chamada retorna um álbum.

REST

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

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

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

{
  "albumId": album-id
}

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

Mudar os títulos e as fotos de capa dos álbuns

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

Os títulos dos álbuns não podem ter mais de 500 caracteres. Os itens de mídia da capa precisam ser de propriedade do proprietário do álbum e pertencer ao álbum para o qual serão a capa.

REST

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

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 no URL. O parâmetro updateMask precisa ser transmitido para cada propriedade de álbum que está sendo atualizada.

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

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

Se for bem-sucedido, a resposta vai retornar os detalhes atualizados 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"
}

Adicionar itens de mídia a um álbum

É possível adicionar itens de mídia criados pelo app aos álbuns criados pelo app chamando 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. As solicitações para adicionar mais itens que excederiam esse limite falharão.

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-sucedida, a resposta retorna uma resposta JSON vazia e o status de sucesso HTTP.

Remover itens de mídia de um álbum

É possível remover itens de mídia criados pelo app para álbuns criados por ele chamando albums.batchRemoveMediaItems.

Toda a solicitação falhará se itens de mídia inválidos forem especificados. Não é possível ter sucesso parcial.

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 for bem-sucedida, a resposta retornará uma resposta JSON vazia e o status de sucesso HTTP.

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
}