Alben verwalten

In Google Fotos können Sie Fotos und andere Medien mithilfe von Alben organisieren. Ein Medienelement kann mit einem oder mehreren Alben verknüpft sein. Um Medien mit einem Album zu verknüpfen, müssen Sie es zuerst erstellen.

Erforderliche Autorisierungsbereiche

Um ein Album zu erstellen, muss Ihre Anwendung mindestens einen der folgenden Autorisierungsbereiche anfordern:

  • photoslibrary.appendonly
  • photoslibrary.sharing

Wenn Sie den Titel oder das Titelbild von Alben nach der Erstellung ändern möchten, verwenden Sie den Bereich photoslibrary.edit.appcreateddata.

Neues Album wird erstellt

Rufen Sie zum Erstellen eines Albums albums.create auf und fügen Sie title ein. title darf maximal 500 Zeichen lang sein.

Der Aufruf gibt ein album zurück. Ihre Anwendung kann die Album-ID aus diesen Informationen speichern und zum Hochladen von Medienelementen in das jeweilige Album verwenden.

REST

Hier ist ein Header für eine POST-Anfrage:

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

Der Anfragetext sieht so aus:

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

Wenn der Vorgang erfolgreich ist, wird ein album zurückgegeben:

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

Albumtitel und Titelbilder ändern

Wenn Sie einen Albumtitel oder ein Titelbild ändern möchten, erstellen Sie ein album update call mit der ID des Albums und geben Sie in der Anfrage den neuen Titel oder die Medienelement-ID des neuen Titelbildes an. Sie müssen den Autorisierungsbereich photoslibrary.edit.appcreateddata verwenden, um die Änderung vorzunehmen.

Albumtitel dürfen maximal 500 Zeichen lang sein. Covermedien müssen dem Inhaber des Albums gehören und zu dem Album gehören, für das sie als Cover verwendet werden.

REST

Hier ist eine PATCH-Anfrageheader zum Aktualisieren der title und coverPhotomediaItemId eines Albums.

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

Diese Anfrage bestimmt, welche Attribute aktualisiert werden. Dazu wird eine Feldmaske eingefügt, die durch die updateMask-Parameter in der URL angegeben wird. Der Parameter updateMask muss für jede Albumeigenschaft, die aktualisiert wird, übergeben werden.

Geben Sie für jedes Attribut, das Sie aktualisieren, die zugehörigen Details in den Text der Anfrage ein:

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

Bei Erfolg gibt die Antwort die aktualisierten album-Details zurück:

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

Medienelemente zu einem Album hinzufügen

Sie können Medienelemente aus der Google Fotos-Galerie des Nutzers zu einem Album hinzufügen. Rufen Sie dazu albums.batchAddMediaItems auf. Die Medienelemente werden in der in diesem Aufruf angegebenen Reihenfolge am Ende des Albums hinzugefügt.

Die gesamte Anforderung schlägt fehl, wenn ein ungültiges Medienelement oder Album angegeben wird. Teilweiser Erfolg wird nicht unterstützt.

Jedes Album kann bis zu 20.000 Medienelemente enthalten. Anfragen zum Hinzufügen weiterer Elemente, die dieses Limit überschreiten würden, schlagen fehl.

Sie können nur von Ihrer App erstellte Alben Medienelemente hinzufügen, die von Ihrer App hochgeladen wurden. Medienelemente müssen sich auch in der Mediathek des Nutzers befinden. Freigegebene Alben müssen entweder dem Nutzer gehören oder der Nutzer muss ein Mitbearbeiter sein, der dem Album bereits beigetreten ist.

Wenn Sie einem Album Medienelemente hinzufügen möchten, rufen Sie albums.batchAddMediaItems mit den IDs der Medienelemente und des Albums auf.

REST

Hier ist ein Header für eine POST-Anfrage:

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

Der Anfragetext sieht so aus:

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

Bei Erfolg werden eine leere JSON-Antwort und der HTTP-Status „Erfolgreich“ zurückgegeben.

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
}

Medienelemente aus einem Album entfernen

Sie können Medienelemente, die Sie aus einem Album hinzugefügt haben, durch Aufrufen von albums.batchRemoveMediaItems entfernen.

Die gesamte Anfrage schlägt fehl, wenn ungültige Medienelemente angegeben werden. Ein teilweiser Erfolg wird nicht unterstützt.

Sie können nur Medienelemente entfernen, die in Ihrer Anwendung einem Album hinzugefügt wurden oder die in einem Album als Teil eines Uploads erstellt wurden. Bei geteilten Alben können Sie Elemente, die von anderen Mitbearbeitern hinzugefügt wurden, nur dann entfernen, wenn Sie im Namen des Inhabers des Albums handeln.

Wenn Sie Medienelemente aus einem Album entfernen möchten, rufen Sie albums.batchRemoveMediaItems mit den IDs der Medienelemente und des Albums auf.

REST

Hier ist ein Header für eine POST-Anfrage:

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

Der Anfragetext sieht so aus:

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

Bei Erfolg werden eine leere JSON-Antwort und der HTTP-Status „Erfolgreich“ zurückgegeben.

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
}