Tambahkan pengayaan

Pengayaan memungkinkan aplikasi Anda mengontrol struktur dan presentasi foto dalam album di Google Foto. {i>Wireframe<i} memungkinkan Anda untuk menampilkan kepada dengan konteks tambahan melalui anotasi teks atau lokasi, dan urutan/grup gambar-gambar yang mengisahkan cerita bersama.

Cakupan otorisasi yang diperlukan

Untuk menambahkan pengayaan, diperlukan minimal salah satu cakupan berikut:

  • photoslibrary.appendonly
  • photoslibrary.library
  • photoslibrary.sharing

Untuk setiap cakupan, panggilan enrichAlbum dibatasi hanya untuk album yang dibuat oleh aplikasi.

Saat menggunakan cakupan .sharing, enrichAlbum dibatasi pada keadaan tempat pengembang bertindak atas nama pemilik album bersama.

Jenis pengayaan

Google Foto mendukung tiga jenis pengayaan dalam album: teks, lokasi, dan peta.

Pengayaan teks

Pengayaan teks adalah {i>string<i} teks biasa yang dapat dimasukkan untuk memberi anotasi album.

Screenshot pengayaan teks yang ditampilkan di Google Foto

Pengayaan lokasi

Pengayaan lokasi adalah penanda dan nama tempat yang dapat disisipkan untuk menganotasi sebuah lokasi.

Screenshot pengayaan lokasi yang ditampilkan di Google Foto

Pengayaan peta

Pengayaan peta adalah peta dengan tempat asal dan tujuan tertentu yang dapat yang disisipkan ke dalam album.

Screenshot pengayaan peta yang ditampilkan di Google Foto

Posisi

Untuk menyisipkan item media dan pengayaan album, tentukan posisi album. Posisi bersifat opsional untuk item media, namun harus ditetapkan untuk album pengayaan.

Posisi hanya dapat ditentukan ketika membuat item media atau menambahkan pengayaan. Item media yang ada di album tidak dapat diatur ulang, sehingga penting untuk mengatur posisi item saat ditambahkan.

Awal album

Item media/pengayaan dapat ditambahkan ke awal album sebagai absolut pemosisian.

Akhir album

Item media/pengayaan dapat ditambahkan ke akhir album sebagai absolut pemosisian.

Relatif terhadap item media

Item media/pengayaan dapat ditambahkan secara relatif ke item media dimulai setelah posisinya dalam album.

Relatif terhadap item pengayaan

Item media/pengayaan dapat ditambahkan relatif ke item pengayaan di awal setelah posisinya dalam album.

Menambahkan pengayaan ke album

Pengayaan ditambahkan satu per satu dan harus ditambahkan ke posisi dalam album. Untuk menambahkan pengayaan ke album, panggil albums.addEnrichment

Jika permintaan berhasil, id item pengayaan akan ditampilkan, yang dapat digunakan untuk memosisikan item media atau pengayaan lainnya.

REST

Berikut adalah permintaan POST:

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

Isi permintaan terdiri dari item pengayaan dan posisinya:

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

Berikut adalah contoh responsnya:

{
  "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
}

Pengayaan yang didukung

Pengayaan teks

Pengayaan teks berisi satu {i>string<i} teks (tidak lebih dari 1000 karakter), seperti yang ditunjukkan dalam contoh berikut:

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

Pengayaan lokasi

Pengayaan lokasi terdiri dari nama lokasi arbitrer serta garis lintang dan posisi garis bujur. locationName dibatasi hingga 500 karakter.

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

Pengayaan peta

Pengayaan peta menampilkan dua lokasi, masing-masing terdiri dari nama dan lintang dan bujur. Mirip dengan pengayaan lokasi, locationName dalam origin dan destination dibatasi hingga 500 karakter.

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

Penempatan posisi yang didukung

Awal album

Posisi FIRST_IN_ALBUM mengacu pada awal album. Item ditemukan berikut ditampilkan kepada pengguna terlebih dahulu:

REST

{
  "position": "FIRST_IN_ALBUM",
}

Java

AlbumPosition albumPosition = AlbumPositionFactory.createFirstInAlbum();

PHP

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

Akhir album

Posisi LAST_IN_ALBUM mengacu pada akhir album. Item terletak di sini ditampilkan kepada pengguna terakhir.

REST

{
  "position": "LAST_IN_ALBUM",
}

Java

AlbumPosition albumPosition = AlbumPositionFactory.createLastInAlbum();

PHP

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

Relatif terhadap item media

Menentukan posisi relativeMediaItem mengacu pada posisi yang terkait dengan item media. Item akan ditambahkan setelah item media yang ditentukan.

REST

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

Java

AlbumPosition albumPosition = AlbumPositionFactory.createAfterMediaItem(mediaItemId);

PHP

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

Relatif terhadap item pengayaan

Menentukan relativeEnrichmentItemId mengacu pada posisi yang terkait dengan item pengayaan. Item ditambahkan setelah item pengayaan yang ditentukan.

REST

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

Java

AlbumPosition albumPosition = AlbumPositionFactory.createAfterEnrichmentItem(enrichmentItemId);

PHP

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

Mengubah pengayaan

Saat ini, tidak ada cara untuk memodifikasi pengayaan. Namun, setelah pengayaan dibuat dan ditambahkan ke album, pengguna dapat memodifikasi pengayaan melalui aplikasi Google Foto.