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 }