API de ARCore Cloud Anchor Management

Administra Cloud Anchors fuera de tu app de ARCore con la API de Cloud Anchor Management de ARCore.

Cómo comenzar

Operaciones de ejemplo

Autorización

Crea una clave de cuenta de servicio en Google Cloud Platform Console y genera un token de OAuth2 para autorizar las llamadas a la API de administración de Cloud Anchor.

  1. En el menú de navegación de Google Cloud Platform Console, ve a APIs & Services > Credentials.

  2. Selecciona el proyecto deseado y haz clic en Create Credentials > Service account.

  3. En Service account details, escribe un nombre para la cuenta nueva y, luego, haz clic en Create.

  4. En la página Service account permissions, ve al menú desplegable Select a role. Selecciona Service Accounts > Service Account Token Creator y, luego, haz clic en Continue.

  5. En la página de Grant users access to this service account, haz clic en Done. Esto te lleva de regreso a APIs & Services > Credentials.

  6. En la página Credentials, desplázate hacia abajo hasta la sección Service Accounts y haz clic en el nombre de la cuenta que acabas de crear.

  7. En la página Service account details, desplázate hacia abajo hasta la sección Keys y selecciona Add Key > Create new key.

  8. Selecciona JSON como el tipo de clave y haz clic en Create. Esto descarga un archivo JSON que contiene la clave privada en tu máquina. Almacena el archivo de claves JSON descargado en una ubicación segura.

Genera un token de OAuth2

arcore.management es el permiso de OAuth para la API de Cloud Anchors Management. Según la configuración predeterminada, oauth2l funciona en una caché de tokens. El comando fetch recupera el mismo token. Usa oauth2l a fin de generar un token de OAuth2 para autorización:

oauth2l fetch --json creds.json arcore.management

Para generar un token nuevo, agrega una opción --cache="" al comando fetch.

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

Como alternativa, llama a oauth2l reset y vuelve a llamar al comando fetch.

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

Enumerar todas las Cloud Anchors

Obtén la primera página de Cloud Anchors, ordenada de forma opcional por expire_time, create_time o last_localize_time.

Solicitud:

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"

Respuesta:

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

Si la respuesta muestra un nextPageToken, hay más anclas para enumerar. Usa el parámetro de consulta next_page_token en la próxima solicitud para recuperar el siguiente conjunto de resultados.

Solicitud:

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"

Cuando se usa next_page_token, page_size y order_by deben ser coherentes en todas las solicitudes. La configuración predeterminada de page_size es 1000 y order_by, expire_time_desc.

Actualizar el tiempo de actividad de Cloud Anchor al máximo permitido

Solicita un solo Cloud Anchor para consultar su lastLocalizeTime y maximumExpireTime.

Solicitud:

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"

Respuesta:

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

Una vez que tengas el ancla, actualiza su expireTime a su maximumExpireTime.

Solicitud:

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

Respuesta:

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

Borrar Cloud Anchors

Borra una sola 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"

Borra un lote de Cloud Anchors:

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