Configurar a API Places (nova)

Desenvolvedores do Espaço Econômico Europeu (EEE)

Neste documento, descrevemos as etapas para começar a usar a API Places (nova).

Pré-requisitos

Este procedimento orienta você na configuração de uma conta do Google Cloud e de um projeto na nuvem com o faturamento ativado. Você também precisa saber como é feita a cobrança pelo uso da API Places (nova).

  1. Revise o faturamento e o custo de uso em Uso e faturamento da API Places (nova).
  2. Verifique se você tem uma Conta do Google Cloud.

    Faça login no console do Google Cloud
  3. Verifique se você tem um projeto do Google Cloud com o faturamento ativado.

    Acessar a página "Faturamento"
    1. Selecione o projeto para abrir a página Faturamento.
    2. Na página Faturamento:

      • Se o faturamento já estiver ativado para o projeto selecionado e você tiver apenas uma conta de faturamento, a página Faturamento será aberta.
      • Se você tiver várias contas de faturamento, selecione Acessar a conta de faturamento vinculada para ver os detalhes da conta de faturamento associada ao projeto.
      • Se uma conta de faturamento existir, mas não estiver associada ao projeto, será solicitado que você vincule uma conta de faturamento ao projeto.
      • Se não houver uma conta de faturamento ou se você quiser criar uma nova, selecione Gerenciar contas de faturamento para criar uma nova conta de faturamento. Para mais informações, consulte Criar uma nova conta do Cloud Billing de autoatendimento.

Ativar a API

Antes de usar a API Places (nova), use o console do Google Cloud ou o comando gcloud para ativá-la no seu projeto na nuvem do Google Cloud.

Para ativar a API:

Console

  1. Abra a página do produto no console do Google Cloud:

    Ativar a API Places (nova)
  2. Clique no botão Ativar.

gcloud

gcloud services enable \
    --project "PROJECT" \
    "places.googleapis.com"

Saiba mais sobre o SDK Google Cloud, a instalação do SDK Cloud e os seguintes comandos:

Receber uma chave de API para usar com a API Places (nova)

Para proteger os produtos da Plataforma Google Maps contra uso não autorizado, as chamadas de API precisam incluir uma chave de API ou um token OAuth. O procedimento da chave de API vem primeiro. Para usar um token OAuth, consulte Criar um token OAuth.

Uma chave de API é uma string alfanumérica exclusiva que associa sua conta do Cloud Billing e o projeto na nuvem do Google Cloud à solicitação que seu aplicativo faz a uma API ou um SDK da Plataforma Google Maps. Para criar uma nova chave ou adicionar uma API ou um SDK a uma chave, siga estas instruções.

Console

  1. Acesse a página Plataforma Google Maps > Chaves e credenciais.

    Acessar a página Chaves e credenciais

  2. Se solicitado, selecione o projeto.
  3. Escolha uma destas opções:

    • Crie uma nova chave:

      1. Clique em Criar credenciais > Chave de API.
      2. No painel Criar chave de API, abra a lista Selecionar restrições de API.
      3. Remova as APIs que não são necessárias para essa chave e verifique se a API Places (nova) continua selecionada.
      4. Clique em Criar. O painel mostra sua nova chave de API.
    • Usar uma chave atual:

      1. Clique no nome da chave.
      2. Na lista Selecionar restrições da API, escolha API Places (nova).
      3. Clique em Salvar.

    Selecionar uma API aqui não a ativa. Verifique se a API Places (nova) está ativada na página da biblioteca de APIs.

  4. Para ver a string da chave mais tarde, acesse a página Chaves e credenciais e clique em Mostrar chave.

Se o console estiver diferente do que é mostrado nestas etapas, consulte Criar uma chave de API e Adicionar restrições de API na documentação do Google Cloud.

gcloud

Substitua PROJECT_ID pelo ID do projeto nos comandos a seguir.

  • Crie uma nova chave: execute o comando a seguir e substitua DISPLAY_NAME por um nome para a chave.

    gcloud services api-keys create \
        --project="PROJECT_ID" \
        --display-name="DISPLAY_NAME" \
        --api-target=service=places.googleapis.com

    Saiba mais sobre o SDK Google Cloud, a instalação do SDK Cloud e os seguintes comandos:

  • Usar uma chave atual: execute o comando a seguir e substitua KEY_ID pelo ID da chave. A flag --append mantém as APIs que a chave já permite. Sem ele, o comando as substitui.

    gcloud services api-keys update KEY_ID \
        --project="PROJECT_ID" \
        --append \
        --api-target=service=places.googleapis.com

    Saiba mais sobre o SDK Google Cloud, a instalação do SDK Cloud e os seguintes comandos:

    O ID da chave não é a string de chave nem o nome de exibição. Para encontrá-lo, execute gcloud services api-keys list --project="PROJECT_ID". O ID é a última parte do campo name: projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.

Para ver a string de chave, execute gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID".

Fazer uma solicitação de API

Faça uma solicitação da API Places (nova) para retornar uma resposta JSON para uma Text Search na string "Spicy Vegetarian Food in Sydney, Australia". É preciso incluir a string alfanumérica da chave de API em todas as solicitações e usar HTTPS para solicitações que incluem a chave de API.

  1. Clique em API_KEY no código abaixo para inserir a string alfanumérica da chave:

    curl -X POST -d '{
      "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
    -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
    'https://places.googleapis.com/v1/places:searchText'
  2. Clique no ícone de cópia no exemplo de código, Selecione o ícone de cópia., para copiar o comando curl.
  3. Cole o comando em uma janela do terminal e execute-o.

A resposta é um objeto JSON no formato:

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

Aplicar restrições de chave de API

O Google recomenda que você restrinja as chaves de API limitando o uso somente às APIs e aos apps que precisam delas. Restringir chaves de API adiciona segurança ao seu aplicativo, protegendo-o contra solicitações não autorizadas. As chaves de API são compatíveis com dois tipos de restrições:

  • As restrições de API especificam quais SDKs e APIs podem ser chamados com a chave de API. O console e a CLI gcloud exigem pelo menos uma restrição de API quando você cria uma chave.
  • As restrições de aplicativo especificam quais sites, endereços IP ou apps podem usar uma chave de API.

Para mais informações sobre como aplicar restrições, consulte Restringir suas chaves de API.

Criar um token OAuth

A API Places (nova) é compatível com o OAuth 2.0 para autenticação. O Google é compatível com cenários comuns do OAuth 2.0, como os de um servidor da Web.

Neste documento, descrevemos como transmitir um token OAuth para uma chamada da API Places (nova) no seu ambiente de desenvolvimento. Para mais informações sobre como usar o OAuth em um ambiente de produção, consulte Métodos de autenticação no Google.

É possível chamar as APIs Google Maps diretamente fazendo solicitações de API ao servidor ou usar bibliotecas de cliente para simplificar seu código. O Google Maps oferece bibliotecas de cliente para Go, Java, Node.js e Python. Para mais informações, consulte Bibliotecas de cliente da API Places (nova).

Visão geral do OAuth

É possível criar e gerenciar tokens de acesso com o OAuth de várias maneiras, dependendo do seu ambiente de implantação.

É possível usar o OAuth 2.0 para interações de servidor para servidor entre seu aplicativo e um serviço do Google. Nesse cenário, você usa uma conta de serviço associada ao aplicativo, em vez de um usuário individual. É possível fazer solicitações de API usando a conta de serviço sem envolver os usuários diretamente. Para mais informações sobre métodos de autenticação, consulte Métodos de autenticação no Google.

Como alternativa, é possível integrar a API Places (nova) a um app para dispositivos móveis Android ou iOS. Para mais informações sobre como usar o OAuth e gerenciar tokens de acesso para diferentes ambientes de implantação, consulte Como usar o OAuth 2.0 para acessar as APIs do Google.

Escopos do OAuth

Para usar o OAuth com a API Places (nova), atribua ao token OAuth o seguinte escopo:

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

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

Se você não tiver um ambiente que gere tokens e quiser testar a API Places (nova) com um token OAuth, use o procedimento nesta seção.

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 com bibliotecas de cliente, consulte Autenticar usando bibliotecas de cliente.

Use o procedimento REST a seguir apenas para desenvolvimento ou teste, não para produção.

Pré-requisitos

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

  1. Instale e inicialize a CLI gcloud. Para mais informações, consulte Instalar a CLI gcloud.

  2. Faça a autenticação com a gcloud CLI:

    gcloud auth application-default login
  3. Conclua o processo de login para salvar suas credenciais no arquivo de credenciais local usado pelo ADC.

Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.

Fazer uma solicitação REST

Neste exemplo, você transmite dois cabeçalhos da 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 projeto na nuvem do Google Cloud com o faturamento ativado no cabeçalho X-Goog-User-Project.

Para chamar a API Places (nova) usando um token OAuth, siga estas etapas:

  1. No exemplo de código a seguir, substitua PROJECT_ID pelo ID do projeto do Google Cloud:

    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"
  2. Para copiar o comando curl, clique em Copiar no exemplo de código.

  3. Cole o comando em uma janela do terminal e execute-o.

A resposta é um objeto JSON:

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

Solução de problemas

Se a solicitação retornar uma mensagem de erro informando que essa API não é compatível com credenciais de usuário final, consulte Resolver problemas de configuração do ADC.

A seguir

Agora que você ativou a API Places (nova) e configurou uma chave de API, consulte Sobre a API Places (nova) para saber como usá-la.