API ARCore Cloud Anchor Management

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

Primeiros passos

Exemplos de operações

Autorização

Crie uma chave de conta de serviço console do Google Cloud Platform e gerar um token OAuth2 para autorizar chamadas de 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, em seguida, clique em Create.

  4. Na página Service account permissions, acesse o Select a role no menu suspenso. 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 levará 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 para sua máquina. Armazenar o JSON baixado em um local seguro.

Gerar um token OAuth2

arcore.management é o escopo do OAuth para a API Cloud Anchors Management. De padrão, o oauth2l funciona em um cache de token. O comando fetch recupera a mesma com base no token correto anterior. Usar oauth2l para gerar um OAuth2. token para autorização:

oauth2l fetch --json creds.json arcore.management

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

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 todos os Cloud Anchors

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 retornar com um nextPageToken, haverá mais âncoras para lista. 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 entre solicitações. O padrão de page_size é 1000, e o de order_by é definido como padrão expire_time_desc.

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

Solicite um único Cloud Anchor para consultar seu lastLocalizeTime e 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 ter a âncora, atualize a expireTime para 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 âncoras do Cloud

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