Mit Anreicherungen kann Ihre Anwendung die Struktur und Darstellung von Fotos in einem Album in Google Fotos steuern. Sie ermöglichen es Ihnen, Nutzern zusätzlichen Kontext durch Text- oder Standortanmerkungen sowie Reihenfolgen/Gruppenbilder zu bieten, die eine Geschichte gemeinsam erzählen.
Erforderlicher Autorisierungsbereich
Zum Hinzufügen von Anreicherungen ist mindestens einer der folgenden Bereiche erforderlich:
photoslibrary.appendonly
photoslibrary.library
photoslibrary.sharing
Für jeden Bereich ist der enrichAlbum
-Aufruf auf die von der App erstellten Alben beschränkt.
Bei Verwendung des Bereichs .sharing
ist enrichAlbum
auf Fälle beschränkt, in denen der Entwickler im Namen des Inhabers des geteilten Albums handelt.
Anreicherungstypen
Google Fotos unterstützt drei Arten von Anreicherungen in Alben: Text, Orte und Karten.
Textanreicherungen
Eine Textanreicherung ist eine einfache Textzeichenfolge, die eingefügt werden kann, um das Album zu annotieren.
Standortanreicherungen
Eine Standortanreicherung besteht aus einer Markierung und dem Namen des Ortes, die eingefügt werden können, um einen Standort mit Anmerkungen zu versehen.
Kartenanreicherungen
Bei einer Kartenanreicherung handelt es sich um eine Karte mit einem angegebenen Start- und Zielort, die in das Album eingefügt werden können.
Positionen
Geben Sie die Position des Albums an, um Medienelemente und Anreicherungen in Alben einzufügen. Eine Position ist für Medienelemente optional, muss aber für die Albumaufwertung angegeben werden.
Eine Position kann nur beim Erstellen eines Medienelements oder beim Hinzufügen von Anreicherungen angegeben werden. Vorhandene Medienelemente in einem Album lassen sich nicht neu organisieren. Daher ist es wichtig, die Position eines Elements festzulegen, wenn es hinzugefügt wird.
Beginn des Albums
Ein Medien-/Anreicherungselement kann als absolute Positionierung am Anfang des Albums hinzugefügt werden.
Ende des Albums
Ein Medien-/Anreicherungselement kann als absolute Positionierung am Ende des Albums hinzugefügt werden.
Relativ zum Medienelement
Ein Medien-/Anreicherungselement kann relativ zu einem Medienelement nach seiner Position im Album hinzugefügt werden.
Relativ zum Anreicherungselement
Ein Medien-/Anreicherungselement kann relativ zu einem Anreicherungselement hinzugefügt werden, beginnend nach seiner Position im Album.
Bereiche zum Album hinzufügen
Die Bereiche werden einzeln hinzugefügt und müssen einer Position in einem Album hinzugefügt werden.
Rufen Sie albums.addEnrichment
auf, um einem Album Anreicherungen hinzuzufügen.
Wenn die Anfrage erfolgreich ist, wird der id
des Anreicherungselements zurückgegeben, das zum Positionieren von Medienelementen oder anderen Anreicherungen verwendet werden kann.
REST
Hier ist eine POST-Anfrage:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:addEnrichment Content-type: application/json Authorization: Bearer oauth2-token request-body
Der Anfragetext besteht aus dem Anreicherungselement und seiner Position:
{ "newEnrichmentItem": { enrichment-to-be-added }, "albumPosition": { position-of-enrichment }
Hier ist eine Beispielantwort:
{ "enrichmentItem": { "id": "enrichment-item-id", } }
Java
try { // Create the enrichment using the NewEnrichmentItemFactory helper NewEnrichmentItem newEnrichmentItem = NewEnrichmentItemFactory.createTextEnrichment(""); // Set the position of the enrichment within the album AlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum(); // To add an enrichment, specify the album, the enrichment item, // and the position in the album where the enrichment is to be added AddEnrichmentToAlbumResponse response = photosLibraryClient .addEnrichmentToAlbum(albumId, newEnrichmentItem, albumPosition); // The response contains an EnrichmentItem // whose ID can be used to position media items or other enrichments EnrichmentItem enrichmentItem = response.getEnrichmentItem(); String itemId = enrichmentItem.getId(); } catch (ApiException e) { // Handle error }
PHP
// Create the enrichment item using the PhotosLibraryResourceFactory helper $newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithText(""); // ... // Set the position of the enrichment within the album $position = new AlbumPosition(); // ... try { // To add an enrichment, specify the album, the enrichment item, // and the position in the album where the enrichment is to be added $response = $photosLibraryClient->addEnrichmentToAlbum($albumId, $newEnrichmentItem, $position); // The response contains an EnrichmentItem // whose ID can be used to position media items or other enrichments $enrichmentItem = $response->getEnrichmentItem(); $itemId = $enrichmentItem->getId(); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
Unterstützte Anreicherungen
Textanreicherungen
Textanreicherungen enthalten einen einzelnen Textstring mit maximal 1.000 Zeichen, wie im folgenden Beispiel gezeigt:
REST
{ "text": "Text to be shown" }
Java
// Use the NewEnrichmentItemFactory helper to create a text enrichment item NewEnrichmentItem newEnrichmentItem = NewEnrichmentItemFactory.createTextEnrichment("text to be shown");
PHP
$newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithText("text to be shown");
Standortanreicherungen
Standortanreicherungen bestehen aus einem beliebigen Standortnamen sowie der Breiten- und Längengradposition. locationName
darf maximal 500 Zeichen lang sein.
REST
{ "location": { "locationName": "Australia", "latlng": { "latitude": "-21.197", "longitude": "95.821" } } }
Java
// Use the NewEnrichmentItemFactory helper to create a location enrichment // with the name, latitude, and longitude of the location NewEnrichmentItem newEnrichmentItem = NewEnrichmentItemFactory.createLocationEnrichment("Australia", -21.197, 95.821);
PHP
// Create a new location object and set the name, latitude, and longitude of the location $newLocation = new Location(); $newLocation->setLocationName("Australia"); $newLocation->setLatlng((new LatLng())->setLatitude(-21.197)->setLongitude(95.821)); $newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithLocation($newLocation);
Kartenanreicherungen
Bei Kartenanreicherungen werden zwei Orte angezeigt, von denen jeder aus einem Namen sowie dem Breiten- und Längengrad besteht. Ähnlich wie bei der Standortanreicherung ist locationName
im Startort und destination
auf 500 Zeichen beschränkt.
REST
{ "origin": { "locationName": "Australia", "latlng": { "latitude": "-21.197", "longitude": "95.821" } }, "destination": { "locationName": "San Francisco", "latlng": { "latitude": "37.757", "longitude": "122.507" } } }
Java
// Use the NewEnrichmentItemFactory helper to create a map enrichment item for // an origin and a destination location NewEnrichmentItem newEnrichmentItem = NewEnrichmentItemFactory.createMapEnrichment( "Australia", -21.197, 95.821, // origin "San Francisco", 37.757, 122.507 // destination );
PHP
// Create two new location objects to create a map enrichment item // for an origin and a destination location $locationAustralia = new Location(); $locationAustralia->setLocationName("Australia"); $locationAustralia->setLatlng((new LatLng())->setLatitude(-21.197)->setLongitude(95.821)); $locationSanFrancisco = new Location(); $locationSanFrancisco->setLocationName("San Francisco"); $locationSanFrancisco->setLatlng((new LatLng())->setLatitude(37.757)->setLongitude(122.507)); $newEnrichmentItem = PhotosLibraryResourceFactory::newEnrichmentItemWithMap($locationAustralia, $locationSanFrancisco);
Unterstützte Positionierung
Beginn des Albums
Die Position FIRST_IN_ALBUM
bezieht sich auf den Anfang des Albums. Elemente, die sich hier befinden, werden dem Nutzer zuerst angezeigt:
REST
{ "position": "FIRST_IN_ALBUM", }
Java
AlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum();
PHP
$albumPosition = new AlbumPosition(); $albumPosition->setPosition(PositionType::FIRST_IN_ALBUM);
Ende des Albums
Die Position LAST_IN_ALBUM
bezieht sich auf das Ende des Albums. Elemente, die sich hier befinden,
werden dem Nutzer zuletzt angezeigt.
REST
{ "position": "LAST_IN_ALBUM", }
Java
AlbumPosition albumPosition = AlbumPositionFactory.createLastInAlbum();
PHP
$albumPosition = new AlbumPosition(); $albumPosition->setPosition(PositionType::LAST_IN_ALBUM);
Relativ zum Medienelement
Die Angabe der Position relativeMediaItem
bezieht sich auf eine Position relativ zu einem Medienelement. Die Elemente werden nach dem angegebenen Medienelement hinzugefügt.
REST
{ "position": "after-media-item", "relativeMediaItemId": "media-item-id" }
Java
AlbumPosition albumPosition = AlbumPositionFactory.createAfterMediaItem(mediaItemId);
PHP
$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterMediaItem($mediaItemId);
Relativ zum Anreicherungselement
Wenn Sie eine relativeEnrichmentItemId
angeben, bezieht sich das auf eine Position relativ zu einem Anreicherungselement. Die Elemente werden nach dem angegebenen Anreicherungselement hinzugefügt.
REST
{ "position": "after-enrichment-item", "relativeEnrichmentItemId": "enrichment-item-id" }
Java
AlbumPosition albumPosition = AlbumPositionFactory.createAfterEnrichmentItem(enrichmentItemId);
PHP
$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterEnrichmentItem($enrichmentItemId);
Anreicherungen ändern
Derzeit gibt es keine Möglichkeit, Anreicherungen zu ändern. Nachdem eine Anreicherung erstellt und einem Album hinzugefügt wurde, können sie jedoch über die Google Fotos App geändert werden.