API ARCore Cloud Anchor Management

Gérez les ancres cloud en dehors de votre application ARCore à l'aide de l'API ARCore Cloud Anchor Management.

Premiers pas

Exemples d'opérations

Autorisation

Créez une clé de compte de service dans la console Google Cloud Platform, puis générez un jeton OAuth2 pour autoriser les appels d'API de gestion Cloud Anchor.

  1. Dans le menu de navigation de la console Google Cloud Platform, accédez à APIs & Services > Credentials.

  2. Sélectionnez le projet souhaité, puis cliquez sur Create Credentials > Service account.

  3. Sous Service account details, saisissez un nom pour le nouveau compte, puis cliquez sur Create.

  4. Sur la page Service account permissions, accédez au menu déroulant Select a role. Sélectionnez Service Accounts > Service Account Token Creator, puis cliquez sur Continue.

  5. Sur la page Grant users access to this service account, cliquez sur Done. Cela vous ramène à APIs & Services > Credentials.

  6. Faites défiler la page Credentials jusqu'à la section Service Accounts, puis cliquez sur le nom du compte que vous venez de créer.

  7. Faites défiler la page Service account details jusqu'à la section Keys, puis sélectionnez Add Key > Create new key.

  8. Sélectionnez JSON comme type de clé, puis cliquez sur Create. Un fichier JSON contenant la clé privée est alors téléchargé sur votre ordinateur. Stockez le fichier de clé JSON téléchargé dans un emplacement sécurisé.

Générer un jeton OAuth2

arcore.management est le champ d'application OAuth pour l'API Cloud Anchors Management. Par défaut, oauth2l fonctionne sur un cache de jetons. La commande fetch récupère le même jeton. Utilisez oauth2l pour générer un jeton OAuth2 pour l'autorisation:

oauth2l fetch --json creds.json arcore.management

Pour générer un nouveau jeton, ajoutez une option --cache="" à la commande fetch.

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

Vous pouvez également appeler oauth2l reset et appeler à nouveau la commande fetch.

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

Répertorier toutes les ancres cloud

Obtenez la première page des ancres cloud, éventuellement triées par expire_time, create_time ou last_localize_time.

Demande :

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"

Solution :

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

Si la réponse renvoie un nextPageToken, il y a plus d'ancres à répertorier. Utilisez le paramètre de requête next_page_token dans la requête suivante pour récupérer l'ensemble de résultats suivant.

Demande :

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"

Lorsque vous utilisez next_page_token, page_size et order_by doivent être cohérents entre les requêtes. page_size est défini par défaut sur 1000, et order_by est défini par défaut sur expire_time_desc.

Mettre à jour la valeur TTL d'une ancre cloud pour la définir sur la durée maximale autorisée

Demandez un seul Cloud Anchor pour interroger ses lastLocalizeTime et maximumExpireTime.

Demande :

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"

Solution :

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

Une fois l'ancre, remplacez sa expireTime par maximumExpireTime.

Demande :

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

Solution :

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

Supprimer les ancres cloud

Supprimez une seule ancre cloud:

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"

Supprimez un lot d'ancres cloud:

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