Usar a API ARCore no Google Cloud

Selecione a plataforma:

Recursos do ARCore, como a API Geospatial API e o Cloud Anchors usam a API ARCore hospedada no Google Cloud. Ao usar esses recursos, o aplicativo usa credenciais para acessar o serviço da API ARCore.

Neste guia de início rápido, descrevemos como configurar seu aplicativo para que ele possa se comunicar com o serviço da API ARCore hospedado no Google Cloud.

Criar um novo projeto do Google Cloud ou usar um projeto atual

Se você já tiver um projeto, selecione-o.

Acessar o seletor de projetos

Se você não tiver um projeto do Google Cloud, crie um.

Criar um projeto

Ativar a API ARCore

Para usar a API ARCore, você precisa ativá-la no seu projeto.

Ativar a API ARCore

Configurar um método de autorização

Um aplicativo iOS pode se comunicar com a API ARCore usando dois métodos de autorização: autorização sem chave, que é o método recomendado e autorização de chave de API:

  • A autorização sem chave usa um token assinado para controlar o acesso à API. Isso exige que um servidor de sua propriedade assine tokens e controle o acesso a a API.
  • Uma chave de API é uma string que identifica um projeto do Google Cloud. As chaves de API são geralmente não são considerados seguros, porque costumam ser acessíveis aos clientes. Considere usar a autorização de token para se comunicar com a API ARCore.

Sem chave

O ARCore oferece suporte à autorização de chamadas de API no iOS usando um arquivo (JSON Web token). O token deve ser assinado por um Conta de serviço.

Para gerar tokens para iOS, você precisa ter um endpoint no seu servidor que atenda aos seguintes requisitos:

  • Seu próprio mecanismo de autorização precisa proteger o endpoint.

  • O endpoint precisa gerar um novo token todas as vezes, assim:

    • Cada usuário recebe um token exclusivo.
    • Os tokens não expiram imediatamente.

Criar uma conta de serviço e uma chave de assinatura

Siga estas etapas para criar uma conta de serviço do Google e uma chave de assinatura:

  1. No Google Cloud, abra a página "Credenciais".
    Credenciais
  2. Clique em Criar credenciais > Conta de serviço.
  3. Em Detalhes da conta de serviço, digite um nome para a nova conta e clique em Criar.
  4. Na página "Permissões da conta de serviço", acesse o menu suspenso Selecionar papel. Selecione Contas de serviço > Criador de token da conta de serviço e clique em Continuar.
  5. Na página Conceda aos usuários acesso a essa conta de serviço, clique em "Concluído".
  6. Na página Credenciais localize a seção "Contas de serviço" e clique no nome da conta que você acabou de criar.
  7. Na página Detalhes da conta de serviço, role para baixo até a seção "Chaves" e selecione Adicionar chave > Criar nova chave.
  8. Selecione JSON como o tipo de chave e clique em Criar.

    Isso faz o download de um arquivo JSON que contém a chave privada na sua máquina. Armazenamento faça o download do arquivo de chave JSON em um local seguro.

Criar tokens no seu servidor

Para criar novos tokens (JWTs) no seu servidor, use o JWT padrão bibliotecas e o arquivo JSON que você transferiu por download com segurança da sua nova conta de serviço.

Criar tokens na sua máquina de desenvolvimento

Para gerar JWTs na sua máquina de desenvolvimento, use o seguinte Comando oauth2l:

oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"

É necessário especificar um local de cache vazio usando a flag --cache para garantir que um token diferente seja produzido a cada vez. Não se esqueça de cortar string resultante. Espaços extras ou caracteres de nova linha farão com que a API rejeitar o token.

Assinar o token

É preciso usar o algoritmo RS256 e as seguintes declarações para assinar o JWT:

  • iss: o endereço de e-mail da conta de serviço.
  • sub: o endereço de e-mail da conta de serviço.
  • iat: o horário da época Unix em que o token foi gerado, em segundos.
  • expiat + 3600 (1 hora). O horário da época Unix em que o token expira, em segundos.
  • aud — o público-alvo. Ele precisa ser definido como https://arcore.googleapis.com/

As declarações não padrão não são obrigatórias no payload do JWT, mas você pode encontrar a A declaração uid é útil para identificar o usuário correspondente.

Se você usa uma abordagem diferente para gerar os JWTs, como usar um em um ambiente gerenciado pelo Google, assine seus JWTs com as declarações nesta seção. Acima de tudo, verifique se o público-alvo está correto.

Transmitir o token na sessão do ARCore

  1. Crie uma sessão usando GARSession#sessionWithError:

    NSError *error = nil;
    GARSession *garSession = [GARSession sessionWithError:&error];
    
  2. Quando você receber um token, transmita-o para a sessão usando setAuthToken: Caso contrário, a sessão usará o token de autorização válido mais recente que você transmitiu. Chame este método sempre que atualizar seu token:

    [garSession setAuthToken: authToken]
    

Seu app agora está configurado para usar a autenticação sem chave.

Observe o seguinte ao transmitir um token para a sessão:

  • Se você usou uma chave de API para criar a sessão, o ARCore ignorará o e registrar um erro.

    Se você não precisar mais da chave de API, exclua-a na página Google Developers console e removê-lo do app.

  • O ARCore ignora tokens que contenham espaços ou caracteres especiais.

  • Os tokens geralmente expiram após uma hora. Se houver a possibilidade de que seus token pode expirar durante o uso, obter um novo token e passá-lo para a API.

Chave de API

  1. No Google Cloud, abra a página "Credenciais".
    Credenciais
  2. Clique em Criar credenciais e, em seguida, selecione a chave de API no menu.
    O A caixa de diálogo "Chave de API criada" mostra a string da chave recém-criada.
  3. Ao criar um GARSession, use GARSession#sessionWithAPIKey:bundleIdentifier:error: e insira sua chave de API:

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    
  4. Leia a documentação sobre restrições de chaves de API. para proteger sua chave de API.

Seu app agora está configurado para usar chaves de API.

A seguir

Com a autorização configurada, confira os seguintes recursos do ARCore que usam ele: