Ajouter des informations enrichies

Les enrichissements permettent à votre application de contrôler la structure et la présentation des photos dans un album de Google Photos. Ils vous permettent de fournir à l'utilisateur un contexte supplémentaire via des annotations de texte ou de lieu, et d'organiser/grouper des images qui racontent une histoire ensemble.

Champ d'application de l'autorisation requis

L'ajout d'enrichissements aux albums créés par l'application nécessite le champ d'application photoslibrary.appendonly. Pour en savoir plus sur les champs d'application, consultez la section Champs d'application des autorisations.

Types d'enrichissements

Google Photos accepte trois types d'enrichissements dans les albums : le texte, les lieux et les cartes.

Enrichissements de texte

Une optimisation de texte est une chaîne de texte brut qui peut être insérée pour annoter l'album.

Capture d'écran d'une enrichissement de texte affiché dans Google Photos

Enrichissements de localisation

Une amélioration de la localisation est constituée d'un repère et du nom du lieu, que vous pouvez insérer pour annoter un lieu.

Capture d'écran d'un enrichissement de lieu affiché dans Google Photos

Enrichissements de la carte

Un enrichissement de carte est une carte avec un point de départ et une destination spécifiés qui peut être insérée dans l'album.

Capture d'écran d'un enrichissement de carte affiché dans Google Photos

Positions

Pour insérer des éléments multimédias et des enrichissements d'albums, spécifiez la position de l'album. Une position est facultative pour les éléments multimédias, mais elle doit être spécifiée pour l'enrichissement des albums.

Une position ne peut être spécifiée que lors de la création d'un élément multimédia ou de l'ajout d'enrichissements. Les éléments multimédias existants d'un album ne peuvent pas être réorganisés. Il est donc important de définir la position d'un élément lorsqu'il est ajouté.

Début de l'album

Vous pouvez ajouter un élément multimédia/d'enrichissement au début de l'album en tant que positionnement absolu.

Fin de l'album

Vous pouvez ajouter un élément multimédia/d'enrichissement à la fin de l'album en tant que positionnement absolu.

Par rapport à l'élément multimédia

Un élément multimédia/d'enrichissement peut être ajouté par rapport à un élément multimédia commençant après sa position dans l'album.

Par rapport à l'élément d'enrichissement

Un élément multimédia/d'enrichissement peut être ajouté par rapport à un élément d'enrichissement commençant après sa position dans l'album.

Ajouter des enrichissements à un album

Les enrichissements sont ajoutés un par un et doivent être ajoutés à une position dans un album. Pour ajouter des enrichissements à un album, appelez albums.addEnrichment.

Si la requête aboutit, elle renvoie l'identifiant id de l'élément d'enrichissement, qui peut être utilisé pour positionner des éléments multimédias ou d'autres éléments d'enrichissement.

REST

Voici une requête POST :

POST https://photoslibrary.googleapis.com/v1/albums/album-id:addEnrichment
Content-type: application/json
Authorization: Bearer oauth2-token
request-body

Le corps de la requête comprend l'élément d'enrichissement et sa position :

{
  "newEnrichmentItem": {
    enrichment-to-be-added
  },
  "albumPosition": {
    position-of-enrichment
}

Voici un exemple de réponse :

{
  "enrichmentItem": {
    "id": "enrichment-item-id",
  }
}

Enrichissements acceptés

Enrichissements de texte

Les enrichissements de texte contiennent une seule chaîne de texte (pas plus de 1 000 caractères), comme illustré dans l'exemple suivant :

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");

Enrichissements de localisation

Les enrichissements de lieu consistent en un nom de lieu arbitraire, ainsi que des coordonnées de latitude et de longitude. Le locationName est limité à 500 caractères.

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);

Enricissements de la carte

Les enrichissements de carte affichent deux emplacements, chacun composé d'un nom, d'une latitude et d'une longitude. Comme pour l'enrichissement de la position, le locationName dans l'origine et le destination est limité à 500 caractères.

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);

Positionnement compatible

Début de l'album

La position FIRST_IN_ALBUM fait référence au début de l'album. Les éléments situés ici sont affichés en premier par l'utilisateur :

REST

{
  "position": "FIRST_IN_ALBUM",
}

Java

AlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum();

PHP

$albumPosition = new AlbumPosition();
$albumPosition->setPosition(PositionType::FIRST_IN_ALBUM);

Fin de l'album

La position LAST_IN_ALBUM fait référence à la fin de l'album. Les éléments qui s'y trouvent sont affichés en dernier à l'utilisateur.

REST

{
  "position": "LAST_IN_ALBUM",
}

Java

AlbumPosition albumPosition = AlbumPositionFactory.createLastInAlbum();

PHP

$albumPosition = new AlbumPosition();
$albumPosition->setPosition(PositionType::LAST_IN_ALBUM);

Par rapport à l'élément multimédia

La spécification de la position relativeMediaItem fait référence à une position par rapport à un élément multimédia. Les éléments sont ajoutés après l'élément multimédia spécifié.

REST

{
  "position": "after-media-item",
  "relativeMediaItemId": "media-item-id"
}

Java

AlbumPosition albumPosition = AlbumPositionFactory.createAfterMediaItem(mediaItemId);

PHP

$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterMediaItem($mediaItemId);

Par rapport à l'élément d'enrichissement

Spécifier un relativeEnrichmentItemId fait référence à une position par rapport à un élément d'enrichissement. Les éléments sont ajoutés après l'élément d'enrichissement spécifié.

REST

{
  "position": "after-enrichment-item",
  "relativeEnrichmentItemId": "enrichment-item-id"
}

Java

AlbumPosition albumPosition = AlbumPositionFactory.createAfterEnrichmentItem(enrichmentItemId);

PHP

$albumPosition = PhotosLibraryResourceFactory::albumPositionAfterEnrichmentItem($enrichmentItemId);

Modifier des enrichissements

Il n'est actuellement pas possible de modifier les enrichissements. Toutefois, une fois qu'un enrichissement a été créé et ajouté à un album, l'utilisateur peut le modifier via l'application Google Photos.