API ARCore Cloud Anchor Management

Gerencie o Cloud Anchors fora do seu app ARCore usando a API ARCore Cloud Anchor Management.

Como começar

Exemplos de operações

Autorização

Crie uma chave de conta de serviço no Console do Google Cloud Platform e gere um token OAuth2 para autorizar chamadas da API de gerenciamento do Cloud Anchor.

  1. No menu de navegação do Console do Google Cloud Platform, acesse APIs & Services > Credentials.

  2. Selecione o projeto desejado e clique em Create Credentials > Service account.

  3. Em Service account details, digite um nome para a nova conta e clique em Create.

  4. Na página Service account permissions, acesse o menu suspenso Select a role. Selecione Service Accounts > Service Account Token Creator e clique em Continue.

  5. Na página Grant users access to this service account, clique em Done. Isso leva você de volta para APIs & Services > Credentials.

  6. Na página Credentials, role para baixo até a seção Service Accounts e clique no nome da conta que você acabou de criar.

  7. Na página Service account details, role para baixo até a seção Keys e selecione Add Key > Create new key.

  8. Selecione JSON como o tipo de chave e clique em Create. Isso faz o download de um arquivo JSON que contém a chave privada na sua máquina. Armazene o arquivo de chave JSON salvo em um local seguro.

Gerar um token OAuth2

arcore.management é o escopo do OAuth da API Cloud Anchors Management. Por padrão, o oauth2l funciona em um cache de token. O comando fetch recupera o mesmo token. Use oauth2l para gerar um token OAuth2 para autorização:

oauth2l fetch --json creds.json arcore.management

Para gerar um novo token, adicione uma opção --cache="" ao comando fetch.

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

Como alternativa, chame oauth2l reset e chame o comando fetch novamente.

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

Listar todas as âncoras do Cloud

Acessa a primeira página do Cloud Anchors, opcionalmente classificada por expire_time, create_time ou last_localize_time.

Solicitação:

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"

Resposta:

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

Se a resposta for retornada com um nextPageToken, há mais âncoras para listar. Use o parâmetro de consulta next_page_token na próxima solicitação para recuperar o próximo conjunto de resultados.

Solicitação:

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"

Ao usar next_page_token, page_size e order_by precisam ser consistentes em todas as solicitações. page_size tem 1000 como padrão, e order_by é expire_time_desc.

Atualizar o time to live de um Cloud Anchor até o tempo máximo permitido

Solicite um único Cloud Anchor para consultar o lastLocalizeTime e o maximumExpireTime.

Solicitação:

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"

Resposta:

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

Depois de conseguir a âncora, atualize a expireTime para a maximumExpireTime.

Solicitação:

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

Resposta:

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

Excluir Cloud Anchors

Excluir um único 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"

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