Gerenciar o Cloud Anchors fora do seu app ARCore usando o ARCore Cloud Anchor API Management.
Primeiros passos
Exemplos de operações
- Listar todos os Cloud Anchors
- Atualizar o time to live de um Cloud Anchor para o tempo máximo permitido
- Excluir âncoras do Cloud
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.
No menu de navegação do Console do Google Cloud Platform, acesse APIs & Services > Credentials.
Selecione o projeto desejado e clique em Create Credentials > Service account.
Em Service account details, digite um nome para a nova conta e, em seguida, clique em Create.
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.
Na página Grant users access to this service account, clique em Done. Isso levará você de volta para APIs & Services > Credentials.
Na página Credentials, role para baixo até a seção Service Accounts. e clique no nome da conta que você acabou de criar.
Na página Service account details, role para baixo até a seção Keys. e selecione Add Key > Create new key.
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" ]}'