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 }