A API Air Quality oferece suporte ao uso de 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 Air Quality na sua development. 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 Air Quality, você precisa de uma com uma conta de faturamento e a API Air Quality ativada. Recomendamos criar várias Proprietários de projetos e administradores de faturamento, para que sempre tenha alguém com essas funções disponíveis para 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 na sua implantação de nuvem.
Por exemplo, o sistema OAuth 2.0 do Google oferece suporte a interações de servidor para servidor, como as entre seu aplicativo e um serviço do Google. Neste cenário, você precisa de uma conta de serviço, que é uma conta que pertence ao seu aplicativo e não a um usuário final. Seu chama as APIs do Google em nome da conta de serviço. Assim, os usuários não são diretamente envolvidos. Para mais informações sobre métodos de autenticação, consulte Autenticação no Google.
Você também pode usar a API Air Quality como parte de um app para dispositivos móveis Android ou iOS. Para informações gerais sobre como usar o OAuth com a API Air Quality, incluindo informações sobre gerenciamento de acesso a 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 Air Quality, o token OAuth precisa receber o escopo:
https://www.googleapis.com/auth/cloud-platform
Exemplo: teste chamadas da API REST no ambiente de desenvolvimento local
Se você quiser testar a API Air Quality usando um token OAuth, mas não tiver um ambiente para gerar tokens, use o procedimento nesta seção para fazer a chamada.
Este exemplo descreve como usar o token OAuth fornecido pelo Application Default Credentials (ADC) para fazer a chamada. Para mais informações sobre como usar o ADC para chamar APIs do Google usando bibliotecas de cliente, consulte Faça a autenticação 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 na Configuração no console do Google Cloud
- Instale e inicialize a CLI gcloud.
Execute o seguinte comando
gcloud
na sua máquina local para criar o arquivo de credencial:gcloud auth application-default login
- Uma tela de login será exibida. Após o login, suas credenciais são armazenadas no arquivo de credencial local usado pelo ADC.
Para mais informações, consulte Ambiente de desenvolvimento local do Fornecer credenciais para o Application Default Credentials na documentação do Google Cloud.
Faça uma solicitação REST
Neste exemplo, você passa dois cabeçalhos de solicitação:
Transmita o token OAuth no cabeçalho
Authorization
usando o código abaixo. 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.
- Informe o ID ou o nome do projeto do Google Cloud com o faturamento ativado no
Cabeçalho
X-Goog-User-Project
. Para saber mais, consulte Configure no console do Cloud.
O exemplo abaixo faz uma chamada para a API Air Quality usando um token OAuth:
curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "X-Goog-User-Project: PROJECT_ID" -d '{ "location": { "latitude": 32.62782385865436, "longitude": 35.02197334774893 } }' \ "https://airquality.googleapis.com/v1/currentConditions:lookup"
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.