Usar OAuth

A API Places Insights oferece suporte ao uso do OAuth 2.0 para autenticação. O Google oferece suporte a cenários comuns do OAuth 2.0, como os de um servidor da Web.

Este documento descreve como transmitir um token OAuth para a chamada da API Places Insights no seu ambiente de desenvolvimento. Para instruções sobre como usar o OAuth em um ambiente de produção, consulte Autenticação no Google.

Antes de começar

Antes de começar a usar a API Places Insights, você precisa ter um projeto com uma conta de faturamento e a API Places Insights ativada. Recomendamos criar vários proprietários de projetos e administradores de faturamento para que sempre haja alguém disponível com essas funções na sua equipe. Para saber mais, consulte Configurar no console do Cloud.

Sobre o OAuth

Há muitas maneiras de criar e gerenciar tokens de acesso com o OAuth com base no seu ambiente de implantação.

Por exemplo, o sistema do Google OAuth 2.0 oferece suporte a interações de servidor para servidor, como as que ocorrem entre seu aplicativo e um serviço do Google. Para esse cenário, você precisa de uma conta de serviço, que pertence ao aplicativo, não a um usuário final específico. O aplicativo chama as APIs do Google em nome da conta de serviço. Assim, os usuários não são envolvidos diretamente. Para mais informações sobre métodos de autenticação, consulte Autenticação no Google.

Como alternativa, você pode usar a API Places Insights como parte de um app para dispositivos móveis Android ou iOS. Para informações gerais sobre como usar o OAuth com a API Places Insights, incluindo informações sobre como gerenciar tokens de acesso para diferentes ambientes de implantação, consulte Como usar o OAuth 2.0 para acessar as APIs do Google.

Sobre os escopos do OAuth

Para usar o OAuth com a API Places Insights, o token OAuth precisa ter o escopo atribuído:

  • https://www.googleapis.com/auth/cloud-platform

Exemplo: testar chamadas da API REST no seu ambiente de desenvolvimento local

Se você quiser testar a API Places Insights usando um token OAuth, mas não tiver uma configuração de ambiente para gerar tokens, use o procedimento desta seção para fazer a chamada.

Este exemplo descreve como usar o token OAuth fornecido pelas credenciais padrão do aplicativo (ADC) para fazer a chamada. Para informações sobre como usar o ADC para chamar APIs do Google usando bibliotecas de cliente, consulte Autenticar usando bibliotecas de cliente.

Pré-requisitos

Antes de fazer uma solicitação REST usando o ADC, use a CLI do Google Cloud para fornecer credenciais ao ADC:

  1. Crie um projeto e ative o faturamento seguindo as etapas em Configurar no Console do Google Cloud, se ainda não tiver feito isso.
  2. Instale e inicialize a CLI gcloud.
  3. Execute o comando gcloud abaixo na sua máquina local para criar o arquivo de credenciais:

    gcloud auth application-default login
  4. Uma tela de login será exibida. Após o login, suas credenciais são armazenadas no arquivo de credenciais local usado pelo ADC.

Para mais informações, consulte a seção Ambiente de desenvolvimento local da documentação Fornecer credenciais para as credenciais padrão do aplicativo.

Fazer uma solicitação REST

Neste exemplo, você transmite dois cabeçalhos de solicitação:

  • Transmita o token OAuth no cabeçalho Authorization usando o seguinte comando para gerar o token:

    gcloud auth application-default print-access-token

    O token retornado tem um escopo de https://www.googleapis.com/auth/cloud-platform.

  • Transmita o ID ou o nome do seu projeto do Google Cloud com faturamento ativado no cabeçalho X-Goog-User-Project. Para saber mais, consulte Configurar no console do Cloud.

O exemplo a seguir faz uma chamada para a API Places Insights usando um token OAuth:

curl -X POST 'https://areainsights.googleapis.com/v1:computeInsights' \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \
-H "Authorization: Bearer $TOKEN" \
--data '{
   "insights":[
      "INSIGHT_COUNT"
   ],
   "filter":{
      "location_filter":{
         "region":{
            "place":"places/ChIJIQBpAG2ahYAR_6128GcTUEo"
         }
      },
      "type_filter":{
         "included_types":[
            "restaurant"
         ]
      },
      "price_levels":[
         "PRICE_LEVEL_INEXPENSIVE"
      ]
   }
}'

Solução de problemas

Se a solicitação retornar uma mensagem de erro informando que as credenciais do usuário final não são compatíveis com essa API, consulte As credenciais do usuário não estão funcionando.