A API Places (nova) 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.
Neste documento, descrevemos como transmitir um token OAuth para a chamada (nova) da API Places 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
Para usar a API Places (nova), você precisa ter um projeto com uma conta de faturamento e ativar a API Places (nova). Recomendamos ter 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 entre seu aplicativo e um serviço do Google. Para este cenário, você precisa de uma conta de serviço, que pertence ao seu aplicativo e não a um usuário final individual. O aplicativo chama as APIs do Google em nome da conta de serviço para que os usuários não sejam envolvidos diretamente. Para mais informações sobre métodos de autenticação, consulte Autenticação no Google.
Você também pode usar a API Places (nova) 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 (nova), inclusive sobre o gerenciamento de tokens de acesso em 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 (nova), o token OAuth precisa ter o escopo atribuído:
https://www.googleapis.com/auth/cloud-platform
Exemplo: teste chamadas da API REST no seu ambiente de desenvolvimento local
Se você quer testar a API Places (nova) usando um token OAuth, mas não tem uma configuração de ambiente para gerar tokens, use o procedimento nesta seção para fazer a chamada.
Neste exemplo, descrevemos como usar o token OAuth fornecido pelo Application Default Credentials (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:
- Se ainda não tiver feito isso, crie um projeto e ative o faturamento seguindo as etapas em Configuração no console do Google Cloud.
- Instale e inicialize a CLI gcloud.
Execute o seguinte comando
gcloud
na máquina local para criar o arquivo de credenciais:gcloud auth application-default login
- Uma tela de login será exibida. Depois de fazer login, suas credenciais serão armazenadas no arquivo de credenciais locais usado pelo ADC.
Para mais informações, consulte a seção Ambiente de desenvolvimento local da documentação Fornecer credenciais para o Application Default Credentials.
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 gerá-lo: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 projeto do Google Cloud que tem o 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 (nova) usando um token OAuth:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia" }' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "X-Goog-User-Project: PROJECT_ID" \ -H "X-Goog-FieldMask: places.displayName,places.formattedAddress" \ "https://places.googleapis.com/v1/places:searchText"
Solução de problemas
Se a solicitação retornar uma mensagem de erro informando que as credenciais de usuário final não são compatíveis com essa API, consulte As credenciais do usuário não estão funcionando.