Anreicherungen hinzufügen

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.

Screenshot einer Textanreicherung in Google Fotos

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.

Screenshot einer Standortanreicherung in Google Fotos

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.

Screenshot einer Kartenanreicherung in Google Fotos

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.