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 }