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 werden. So verknüpfen Sie Medienelemente mit einem Album müssen Sie zunächst das Album erstellen.

Erforderliche Autorisierungsbereiche

Zum Erstellen eines Albums muss Ihre App mindestens eine der folgenden Anfragen anfordern Autorisierungsbereiche:

  • photoslibrary.appendonly
  • photoslibrary.sharing

Um den Titel oder das Titelbild eines Albums nach der Erstellung zu ändern, verwenden Sie die photoslibrary.edit.appcreateddata Bereich.

Neues Album erstellen

Rufen Sie zum Erstellen eines Albums albums.create und enthalten title. title ist auf 500 Zeichen beschränkt.

Der Aufruf gibt eine Album. Ihre App kann die Album-ID aus diesen Informationen zu speichern Mediendateien hochladen zu einem bestimmten Album hinzufügen.

REST

Dies ist die Kopfzeile einer 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 war, wird in der Antwort ein 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
}

Albumtitel und Hintergrundbilder ändern

Um einen Albumtitel oder ein Hintergrundbild zu ändern, erstellen Sie ein album update call mit dem ID des Albums und geben Sie den neuen Titel oder die in der Anfrage angegeben haben. Sie müssen die Methode photoslibrary.edit.appcreateddata authorization, um die Änderung vorzunehmen.

Albumtitel dürfen maximal 500 Zeichen lang sein. Cover-Medien müssen dem Eigentümer des Albums gehören und zu dem Album gehören, dass sie als Cover dienen. für die Sie angegeben haben.

REST

Hier ist ein PATCH-Anfrageheader zum Aktualisieren von title und coverPhotomediaItemId.

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

Diese Anfrage bestimmt, welche Attribute aktualisiert werden, indem eine Feldmaske, die durch die updateMask-Parameter im URL Der Parameter updateMask muss für jede Album-Eigenschaft, die aktualisiert wird.

Geben Sie für jede Property, die Sie aktualisieren, den Text der Anfrage:

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

Bei Erfolg gibt die Antwort die aktualisierte album zurück. Details:

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

Hinzufügen von Medien zu einem Album

Sie können Medieninhalte aus der Google Fotos-Galerie eines Nutzers einem Album hinzufügen, indem Sie Anrufen albums.batchAddMediaItems Medienelemente werden in der in diesem Aufruf angegebenen Reihenfolge am Ende des Albums hinzugefügt.

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

Jedes Album kann bis zu 20.000 Medienelemente enthalten. um weitere Elemente hinzuzufügen, die diese Beschränkung überschreiten würde, schlägt fehl.

Sie können nur Medienelemente hinzufügen, die von Ihrer Anwendung hochgeladen in Alben, die in Ihrer App vorhanden sind erstellt. Medienelemente muss sich auch in der Bibliothek des Nutzers befinden. Für Alben, die geteilt werden, müssen sie entweder gehören der Nutzer oder der Nutzer muss ein Mitbearbeiter sein, der dem Album bereits beigetreten ist.

Um Mediendateien zu einem Album hinzuzufügen, rufen Sie albums.batchAddMediaItems durch die IDs der Medienelemente und des Albums.

REST

Dies ist die Kopfzeile einer 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 gibt die Antwort eine leere JSON-Antwort und das HTTP- Erfolgsstatus.

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
}

Medien aus einem Album entfernen

Du kannst Medienelemente, die du aus einem Album hinzugefügt hast, über folgenden Aufruf entfernen: albums.batchRemoveMediaItems

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

Beachte, dass du nur Medieninhalte entfernen kannst, die von deiner App hat einem Album etwas hinzugefügt oder die die in einem Album im Rahmen eines hochladen. Für Alben freigegebene Elemente können Sie nur entfernen, wenn Sie handeln im Auftrag von des Inhaber des Albums.

Um Medienelemente aus einem Album zu entfernen, rufen Sie albums.batchRemoveMediaItems durch die IDs der Medienelemente und des Albums.

REST

Dies ist die Kopfzeile einer 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 gibt die Antwort eine leere JSON-Antwort und das HTTP- Erfolgsstatus.

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
}