In Google Foto puoi organizzare le foto e altri elementi multimediali utilizzando gli album. Un elemento multimediale può essere associato a uno o più album. Per iniziare l'associazione elementi multimediali a un album, devi prima creare l'album.
Ambiti di autorizzazione obbligatori
Per creare un album, la tua app deve richiedere almeno uno dei seguenti documenti ambiti di autorizzazione:
photoslibrary.appendonly
photoslibrary.sharing
Per modificare il titolo o la foto di copertina degli album dopo la loro creazione, utilizza la
photoslibrary.edit.appcreateddata
ambito.
Creazione di un nuovo album
Per creare un album, chiama
albums.create
e includi
title
. Tieni presente che il campo title
è limitato a 500 caratteri.
La chiamata restituisce un album. La tua app può memorizzare l'ID album a partire da queste informazioni e utilizzarlo per caricare elementi multimediali all'album specifico.
REST
Ecco un'intestazione per una richiesta POST:
POST https://photoslibrary.googleapis.com/v1/albums Content-type: application/json Authorization: Bearer oauth2-token
Il corpo della richiesta è simile al seguente:
{ "album": { "title": "new-album-title" } }
Se ha esito positivo, la risposta restituisce un album:
{ "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 }
Modifica dei titoli degli album e delle foto di copertina
Per modificare il titolo di un album o la foto di copertina, crea una album update
call
con
dell'album e includere il nuovo titolo o l'URL della nuova foto di copertina
l'ID elemento multimediale
nella richiesta. Dovrai usare
photoslibrary.edit.appcreateddata
autorizzazione per apportare la modifica.
I titoli degli album non possono contenere più di 500 caratteri. Elementi multimediali copertina deve essere di proprietà del proprietario dell'album e l'album dovrà essere una cover .
REST
Ecco l'intestazione della richiesta PATCH per aggiornare title
e
coverPhotomediaItemId
.
PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId
Questa richiesta determina quali proprietà vengono aggiornate includendo
una maschera di campo, indicata dai parametri updateMask
nel
URL. Il parametro updateMask
deve essere passato per ogni
proprietà album in fase di aggiornamento.
Per ogni proprietà che aggiorni, includi i dettagli in il corpo della richiesta:
{ "title": "new-album-title", "coverPhotoMediaItemId": "new-cover-media-item-id" }
In caso di esito positivo, la risposta restituisce l'oggetto album
aggiornato
dettagli:
{ "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 }
Aggiunta di elementi multimediali a un album
Per aggiungere elementi multimediali a un album dalla raccolta di Google Foto dell'utente puoi:
chiamata
albums.batchAddMediaItems
Gli elementi multimediali vengono aggiunti alla fine dell'album nell'ordine indicato in questa chiamata.
Se viene specificato un elemento multimediale o un album non valido, l'intera richiesta avrà esito negativo. L'esito positivo parziale non è supportato.
Ogni album può contenere fino a 20.000 elementi multimediali. Richieste di aggiungere altri elementi che se superi questo limite non riusciranno.
Tieni presente che puoi aggiungere solo elementi multimediali che sono stati caricati dalla tua applicazione per album che contiene l'applicazione creato. Elementi multimediali deve inoltre essere presente nella raccolta dell'utente. Per gli album condivisi, devono: essere di proprietà del utente o l'utente deve essere un collaboratore già partecipante all'album.
Per aggiungere elementi multimediali a un album, chiama
albums.batchAddMediaItems
con gli identificatori degli elementi multimediali e dell'album.
REST
Ecco un'intestazione per una richiesta POST:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems Content-type: application/json Authorization: Bearer oauth2-token
Il corpo della richiesta è simile al seguente:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
Se l'esito è positivo, la risposta restituisce una risposta JSON vuota e l'istruzione HTTP Stato operazione riuscita.
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 }
Rimozione di elementi multimediali da un album
Puoi rimuovere elementi multimediali che hai aggiunto da un album chiamando
albums.batchRemoveMediaItems
Se vengono specificati elementi multimediali non validi, l'intera richiesta avrà esito negativo. Parziale l'operazione non è supportata.
Tieni presente che puoi rimuovere solo gli elementi multimediali che la tua applicazione ha aggiunto a un album o che sono stati creati in un album nell'ambito di un caricamento. Per gli album condivisi, puoi rimuovere gli elementi aggiunti da altri collaboratori solo se che agiscono per conto di proprietario dell'album.
Per rimuovere elementi multimediali da un album, chiama
albums.batchRemoveMediaItems
con gli identificatori degli elementi multimediali e dell'album.
REST
Ecco un'intestazione per una richiesta POST:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems Content-type: application/json Authorization: Bearer oauth2-token
Il corpo della richiesta è simile al seguente:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
Se l'esito è positivo, la risposta restituisce una risposta JSON vuota e l'istruzione HTTP Stato operazione riuscita.
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 }