API ARCore Cloud Anchor Management

Kelola Cloud Anchor di luar aplikasi ARCore menggunakan ARCore Cloud Anchor Management API.

Memulai

Contoh operasi

Otorisasi

Buat kunci akun layanan di Google Cloud Platform Console dan buat token OAuth2 untuk mengizinkan panggilan Cloud Anchor Management API.

  1. Di menu navigasi Google Cloud Platform Console, buka APIs & Services > Credentials.

  2. Pilih project yang diinginkan, lalu klik Create Credentials > Service account.

  3. Di bagian Service account details, ketik nama untuk akun baru, lalu klik Create.

  4. Di halaman Service account permissions, buka dropdown Select a role. Pilih Service Accounts > Service Account Token Creator, lalu klik Continue.

  5. Di halaman Grant users access to this service account, klik Done. Tindakan ini akan membawa Anda kembali ke APIs & Services > Credentials.

  6. Di halaman Credentials, scroll ke bawah ke bagian Service Accounts, lalu klik nama akun yang baru saja Anda buat.

  7. Di halaman Service account details, scroll ke bawah ke bagian Keys, lalu pilih Add Key > Create new key.

  8. Pilih JSON sebagai jenis kunci dan klik Create. Tindakan ini akan mendownload file JSON yang berisi kunci pribadi ke komputer Anda. Simpan file kunci JSON yang didownload di lokasi yang aman.

Membuat token OAuth2

arcore.management adalah cakupan OAuth untuk Cloud Anchors Management API. Secara default, oauth2l berfungsi di cache token. Perintah fetch mengambil token yang sama. Gunakan oauth2l untuk membuat token OAuth2 untuk otorisasi:

oauth2l fetch --json creds.json arcore.management

Untuk membuat token baru, tambahkan opsi --cache="" ke perintah fetch.

oauth2l fetch --cache="" --json creds.json arcore.management

Atau, panggil oauth2l reset dan panggil perintah fetch lagi.

oauth2l reset
oauth2l fetch --json creds.json arcore.management

Mencantumkan semua Cloud Anchor

Mendapatkan halaman pertama Cloud Anchors, yang secara opsional diurutkan berdasarkan expire_time, create_time, atau last_localize_time.

Permintaan:

export BEARER_TOKEN=`(oauth2l fetch --json creds.json arcore.management)`
curl -H "Authorization: Bearer $BEARER_TOKEN" \
"https://arcore.googleapis.com/v1beta2/management/anchors?page_size=50&order_by=last_localize_time%20desc"

Respons:

{
  "anchors": [
    {
      "name": "anchors/ua-a1cc84e4f11b1287d289646811bf54d1",
      "createTime": "...",
      "expireTime": "...",
      "lastLocalizeTime": "...",
      "maximumExpireTime": "..."
    },
   …
    {
      "name": "anchors/ua-41a3d0233471917875159f6f3c25ea0e",
      "createTime": "...",
      "expireTime": "...",
      "lastLocalizeTime": "...",
      "maximumExpireTime": "..."
    }
  ],
  nextPageToken: "some-long-string"
}

Jika respons kembali dengan nextPageToken, akan ada lebih banyak anchor yang dicantumkan. Gunakan parameter kueri next_page_token pada permintaan berikutnya untuk mengambil kumpulan hasil berikutnya.

Permintaan:

curl -H "Authorization: Bearer $BEARER_TOKEN" \
"https://arcore.googleapis.com/v1beta2/management/anchors?page_size=50&order_by=last_localize_time%20desc&next_page_token=your-next-page-token-here"

Saat menggunakan next_page_token, page_size dan order_by harus konsisten di seluruh permintaan. page_size ditetapkan secara default ke 1000 dan order_by ditetapkan secara default ke expire_time_desc.

Memperbarui waktu Cloud Anchor agar aktif hingga waktu maksimum yang diizinkan

Minta satu Cloud Anchor untuk membuat kueri lastLocalizeTime dan maximumExpireTime-nya.

Permintaan:

export BEARER_TOKEN=`(oauth2l fetch --json creds.json arcore.management)`
curl -H "Authorization: Bearer $BEARER_TOKEN" \
"https://arcore.googleapis.com/v1beta2/management/anchors/your-anchor-id-here"

Respons:

{
  "name": "anchors/ua-f21be53fd8ea57f0169c69fbf827f6b7",
  "createTime": "2020-06-29T21:00:00Z",
  "expireTime": "2020-08-28T22:00:00Z",
  "lastLocalizeTime": "2020-06-29T21:00:00Z",
  "maximumExpireTime": "2021-06-29T21:00:00Z"
}

Setelah Anda memiliki anchor, update expireTime menjadi maximumExpireTime.

Permintaan:

curl -H "Authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" -X "PATCH" \
"https://arcore.googleapis.com/v1beta2/management/anchors/your-anchor-id-here?updateMask=expire_time" \
-d '{ expireTime: "2021-06-29T21:00:00Z" }'

Respons:

{
  "name": "anchors/ua-f21be53fd8ea57f0169c69fbf827f6b7",
  "createTime": "2020-06-29T21:00:00Z",
  "expireTime": "2021-06-29T21:00:00Z",
  "lastLocalizeTime": "2020-06-29T21:00:00Z",
  "maximumExpireTime": "2021-06-29T21:00:00Z"
}

Menghapus Cloud Anchor

Menghapus satu Cloud Anchor:

export BEARER_TOKEN=`(oauth2l fetch --json creds.json arcore.management)`
curl -H "Authorization: Bearer $BEARER_TOKEN" -X "DELETE" \
"https://arcore.googleapis.com/v1beta2/management/anchors/your-anchor-id-here"

Menghapus batch Cloud Anchor:

export BEARER_TOKEN=`(oauth2l fetch --json creds.json arcore.management)`
curl -H "Authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" -X "POST" \
"https://arcore.googleapis.com/v1beta2/management/anchors:batchDelete" \
-d '{ names: [ "anchors/your-anchor-id-here", "anchors/your-anchor-id-here" ]}'