ARCore Cloud Anchor Management API

Verwalten Sie Cloud-Anchors außerhalb Ihrer ARCore-App mit der ARCore Cloud Anchor Management API.

Erste Schritte

Beispielvorgänge

Autorisierung

Erstellen Sie in der Google Cloud Platform Console einen Dienstkontoschlüssel und generieren Sie ein OAuth2-Token, um Cloud Anchor Management API-Aufrufe zu autorisieren.

  1. Klicken Sie im Navigationsmenü der Google Cloud Platform Console auf APIs & Services > Credentials.

  2. Wählen Sie das gewünschte Projekt aus und klicken Sie auf Create Credentials > Service account.

  3. Geben Sie unter Service account details einen Namen für das neue Konto ein und klicken Sie dann auf Create.

  4. Öffnen Sie auf der Seite Service account permissions das Drop-down-Menü Select a role. Wählen Sie Service Accounts > Service Account Token Creator aus und klicken Sie dann auf Continue.

  5. Klicken Sie auf der Seite Grant users access to this service account auf Done. Dadurch gelangen Sie zurück zu APIs & Services > Credentials.

  6. Scrollen Sie auf der Seite Credentials nach unten zum Abschnitt Service Accounts und klicken Sie auf den Namen des gerade erstellten Kontos.

  7. Scrollen Sie auf der Seite Service account details nach unten zum Abschnitt Keys und wählen Sie Add Key > Create new key aus.

  8. Wählen Sie als Schlüsseltyp JSON aus und klicken Sie auf Create. Dadurch wird eine JSON-Datei mit dem privaten Schlüssel auf Ihren Computer heruntergeladen. Speichern Sie die heruntergeladene JSON-Schlüsseldatei an einem sicheren Ort.

OAuth2-Token generieren

arcore.management ist der OAuth-Bereich für die Cloud Anchors Management API. Standardmäßig arbeitet oauth2l mit einem Token-Cache. Mit dem Befehl fetch wird dasselbe Token abgerufen. Verwenden Sie oauth2l, um ein OAuth2-Token für die Autorisierung zu generieren:

oauth2l fetch --json creds.json arcore.management

Fügen Sie dem Befehl fetch die Option --cache="" hinzu, um ein neues Token zu generieren.

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

Alternativ können Sie oauth2l reset aufrufen und den Befehl fetch noch einmal aufrufen.

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

Alle Cloud-Anchors auflisten

Rufen Sie die erste Seite von Cloud-Ankern ab, die optional nach expire_time, create_time oder last_localize_time sortiert werden kann.

Anfrage:

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"

Antwort:

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

Wenn die Antwort nextPageToken zurückgibt, müssen weitere Anker aufgelistet werden. Verwenden Sie den Abfrageparameter next_page_token in der nächsten Anfrage, um die nächsten Ergebnisse abzurufen.

Anfrage:

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"

Wenn Sie next_page_token verwenden, müssen page_size und order_by in allen Anfragen einheitlich sein. page_size ist standardmäßig auf 1000 und order_by auf expire_time_desc.

Gültigkeitsdauer eines Cloud-Ankers auf die maximal zulässige Gültigkeitsdauer aktualisieren

Fordern Sie einen einzelnen Cloud-Anker an, um lastLocalizeTime und maximumExpireTime abzufragen.

Anfrage:

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"

Antwort:

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

Sobald du den Anker hast, ändere sein expireTime in seine maximumExpireTime.

Anfrage:

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

Antwort:

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

Cloud-Anker löschen

Löschen Sie einen einzelnen Cloud-Anker:

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"

Löschen Sie einen Batch von Cloud-Ankern:

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" ]}'