Gestisci album

In Google Foto puoi organizzare foto e altri elementi multimediali utilizzando gli album. Un elemento multimediale può essere associato a uno o più album. Per iniziare ad associare gli elementi multimediali a un album, devi prima creare l'album.

Ambiti di autorizzazione obbligatori

Per creare un album, l'app deve richiedere almeno uno dei seguenti ambiti di autorizzazione:

  • photoslibrary.appendonly
  • photoslibrary.sharing

Per modificare il titolo o la foto di copertina degli album dopo la creazione, utilizza l'ambito photoslibrary.edit.appcreateddata.

Creazione di un nuovo album

Per creare un album, chiama albums.create e includi il title. Tieni presente che il campo title non può superare i 500 caratteri.

La chiamata restituisce un album. L'app può memorizzare l'ID album ricavato da queste informazioni e utilizzarlo per caricare elementi multimediali nell'album specifico.

REST

Di seguito è riportata l'intestazione di 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 l'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 o la foto di copertina di un album, crea un elemento album update call con l'identificatore dell'album e includi nella richiesta il nuovo titolo o l'ID elemento multimediale della nuova foto di copertina. Per apportare la modifica, dovrai utilizzare l'ambito di photoslibrary.edit.appcreateddata autorizzazione.

I titoli degli album non possono contenere più di 500 caratteri. Gli elementi multimediali della copertina devono essere di proprietà del proprietario dell'album e devono appartenere all'album di cui costituiranno la copertina.

REST

Ecco l'intestazione di una richiesta PATCH per aggiornare i valori title e coverPhotomediaItemId di un album.

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 nell'URL. Il parametro updateMask deve essere trasmesso per ogni proprietà dell'album che viene aggiornata.

Per ogni proprietà che stai aggiornando, includi i relativi dettagli nel corpo della richiesta:

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

Se l'esito è positivo, la risposta restituisce i dettagli aggiornati di 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"
}

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

Puoi aggiungere a un album elementi multimediali dalla raccolta di Google Foto dell'utente chiamando albums.batchAddMediaItems. Gli elementi multimediali vengono aggiunti alla fine dell'album nell'ordine dato in questa chiamata.

Se viene specificato un album o un elemento multimediale non valido, l'intera richiesta avrà esito negativo. L'operazione riuscita parziale non è supportata.

Ogni album può contenere fino a 20.000 elementi multimediali. Le richieste di aggiunta di altri elementi che superano questo limite non andranno a buon fine.

Tieni presente che puoi aggiungere soltanto elementi multimediali caricati dalla tua applicazione agli album creati dall'applicazione. Gli elementi multimediali devono essere presenti anche nella raccolta dell'utente. Gli album condivisi devono essere di proprietà dell'utente oppure l'utente deve essere un collaboratore che si è già unito all'album.

Per aggiungere elementi multimediali a un album, chiama albums.batchAddMediaItems con gli identificatori degli elementi multimediali e dell'album.

REST

Di seguito è riportata l'intestazione di 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 lo stato HTTP Successo.

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 gli elementi multimediali che hai aggiunto da un album chiamando albums.batchRemoveMediaItems.

Se vengono specificati elementi multimediali non validi, l'intera richiesta avrà esito negativo. La riuscita parziale non è supportata.

Tieni presente che puoi rimuovere solo gli elementi multimediali che l'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 agisci per conto del proprietario dell'album.

Per rimuovere gli elementi multimediali da un album, chiama albums.batchRemoveMediaItems con gli identificatori degli elementi multimediali e dell'album.

REST

Di seguito è riportata l'intestazione di 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 lo stato HTTP Successo.

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
}