Resolver problemas de autorização de URL no plano Premium da Plataforma Google Maps

Onde gerenciar seu ID do cliente no Console do Google Cloud

O recurso de gerenciamento de ID do cliente do plano Premium está migrando do portal de suporte para o Console do Cloud na página "Credenciais" do Maps, na seção Contas de serviço.

A nova área "ID do cliente" na página "Credenciais"

Observação: o plano Premium da Plataforma Google Maps não está mais disponível para inscrições ou novos clientes.

Os IDs de cliente do plano premium da Plataforma Google Maps são restritos a URLs autorizados. Se você tentar usar um ID em um URL que não foi autorizado, receberá uma mensagem de erro.

Este artigo é destinado a clientes do plano Premium da Plataforma Google Maps que têm esse problema e precisam definir o URL exato a ser autorizado.

Informações gerais

Para impedir que terceiros usem seu ID nos sites deles, a utilização do ID do cliente é restrita a uma lista de URLs que você autorizar. Cada URL pode ser específico, como uma única página da Web, ou genérico, como um domínio inteiro.

Para ver uma lista dos seus URLs autorizados ou autorizar mais URLs, acesse a página Credenciais e role até a seção ID do cliente.

É possível adicionar até 100 URLs de uma vez. Um ID do cliente pode ser associado a no máximo 3.000 URLs autorizados. Se o seu aplicativo hospedar conteúdo do Google Maps de mais de 3.000 locais, use as chaves de API.

Para mais informações sobre como autorizar URLs, consulte o Guia do desenvolvedor.

O problema

Um aplicativo hospedado em um URL não autorizado para seu ID do cliente não poderá usar a Plataforma Google Maps com esse ID. Se um usuário tentar utilizar esse aplicativo, receberá uma mensagem de erro de acordo com a API específica que o aplicativo tentar carregar. Os usuários não poderão usar recursos que dependem da API Maps JavaScript.

  • A API Maps JavaScript exibirá a seguinte mensagem:

    Não foi possível exibir um elemento do Google Maps nessa página. Esse URL não está autorizado a usar o ID de cliente do Google Maps fornecido. Código de erro: UnauthorizedURLForClientIdMapError

  • Se você estiver usando a API Maps JavaScript v3.18 ou uma versão anterior, esta mensagem será exibida:

    O Google desativou o uso da Plataforma Google Maps para este aplicativo. Esse site não está autorizado a usar o ID de cliente do Google Maps fornecido. Se você é proprietário do aplicativo, veja como registrar URLs no Guia do desenvolvedor.

Remover o ID do cliente do aplicativo não é uma correção válida.* Ao fazer isso, você perderá todos os privilégios do plano Premium da Plataforma Google Maps relacionados a esse aplicativo. Isso significa que você não terá direito aos seguintes recursos:

  • Um contrato de nível de serviço (SLA) detalhado
  • Suporte ao cliente
  • Maiores limites para serviços da Web
  • Termos e Condições de nível comercial
  • Suporte a aplicativos da intranet no seu local de trabalho

Isso significa que os aplicativos somente internos ou que não são gratuitos e não usam corretamente um ID do cliente do plano Premium da Plataforma Google Maps não estarão em conformidade com os Termos de Serviço da Plataforma Google Maps padrão.

A solução

A solução correta é encontrar e autorizar os URLs certos para uso com seu ID do cliente.

Na maioria dos casos, você precisa autorizar um aplicativo a utilizar seu ID. Muitas vezes, os aplicativos usam vários URLs com um padrão em comum, por exemplo, um localizador de lojas pode estar hospedado em example.com/stores ou stores.example.com. Você precisa encontrar um URL que corresponda a todos os URLs usados pelo seu aplicativo.

Observação: a autorização de www.example.com não autorizará stores.example.com nem qualquer outro subdomínio de example.com.

Cada URL autorizado pode ser específico (como uma única página da Web) ou genérico (como um domínio inteiro), incluindo os subdomínios. Consulte o Guia do desenvolvedor para saber mais. Recomendamos autorizar URLs que correspondam a um conjunto de URLs razoavelmente amplo, desde que você os administre.

Observação: não é recomendável autorizar um domínio inteiro, a menos que sua organização tenha controle completo sobre todo o conteúdo desse domínio. Por exemplo, autorizar todo o domínio blogspot.com permite que todos usem o ID do cliente nesse domínio às suas custas. Em vez disso, autorize apenas um blog específico, por exemplo, googlegeodevelopers.blogspot.com ou até mesmo uma página específica nesse blog.

Encontrar o URL correto

Normalmente, o URL pode ser encontrado na barra de localização do navegador. Em sites públicos que não usam tags <iframe>, isso costuma ser fácil. Em caso de dúvida, utilize a abordagem a seguir para fazer a verificação.

Aplicativos complexos podem carregar a Plataforma Google Maps em um URL diferente daquele na barra de localização do usuário. Isso ocorre com tags <iframe> ou quando o URL da página que carrega as APIs é gerado dinamicamente no servidor e enviado ao navegador. Para encontrar os URLs corretos nesses casos, é necessário inspecionar algumas solicitações HTTP do navegador para os servidores do Google.

O URL que precisa ser autorizado é aquele que está no cabeçalho Referer das solicitações que o navegador envia ao Google para carregar a API. Cada API é carregada de um URL diferente:

Todas as solicitações de maps.googleapis.com podem ser enviadas para maps.google.com ou maps-api-ssl.google.com, dependendo de como o aplicativo está configurado para carregar a API. Portanto, ao procurar pelas solicitações acima, o caminho importante geralmente é aquele que está em negrito.

Nos cabeçalhos HTTP no navegador

Antes de inspecionar o cabeçalho Referer nas solicitações acima, você precisa capturá-lo do navegador. Existem várias ferramentas gratuitas disponíveis para capturar cabeçalhos HTTP nos principais navegadores:

Observação: você precisa configurar o Fiddler2 para capturar tráfego HTTPS. Veja os detalhes aqui.

Se não for possível capturar cabeçalhos HTTP diretamente do navegador, tente capturar o tráfego HTTP usando um analisador de protocolo de rede, como o Wireshark. Essa ferramenta pode ter uma operação mais complexa do que as outras opções acima, então verifique alguns tutoriais do Wireshark na Web caso não a conheça.

Depois de escolher sua ferramenta, siga as etapas abaixo para encontrar o URL que precisa ser autorizado:

  1. Inicie a ferramenta de captura. Verifique se ela está capturando solicitações HTTP no seu navegador.
  2. Direcione o navegador para o aplicativo que não consegue carregar a Plataforma Google Maps com seu ID do cliente. Você receberá uma das mensagens de erro descritas acima.
  3. Interrompa a captura de tráfego HTTP. Isso facilita a inspeção do tráfego capturado.
  4. Encontre a solicitação que tenta carregar a Plataforma Google Maps com seu ID do cliente. Por exemplo, se o aplicativo tenta carregar a API Maps JavaScript, procure uma solicitação como a seguinte:
    GET /maps/api/js?client=gme-yourclientid HTTP/1.1
  5. Os cabeçalhos da solicitação HTTP estão logo depois dessa linha, sem quebras de linha. Encontre um como este:
    Referer: http://www.example.com/stores/find?zip=94043
  6. O URL dessa linha é o que precisa ser autorizado a usar seu ID do cliente.

No Console JavaScript no navegador

Se você usa a chave de API ou o ID do cliente em um site não autorizado, a API Maps JavaScript exibirá mensagens de erro em window.console. Encontre o URL correto na mensagem de erro. No Console, procure por mensagens de erro como esta:

Google Maps Platform error: UnauthorizedURLForClientIdMapError ...
Your site URL to be authorized: http://www.example.com/stores/find?zip-94043

Se precisar de ajuda para encontrar as mensagens, consulte a seção sobre como verificar erros no navegador.

Encontrar o padrão comum

Para garantir que o aplicativo inteiro consiga carregar a Plataforma Google Maps com seu ID do cliente, você precisa encontrar um padrão comum em todos os URLs usados pelo aplicativo e autorizar um URL que represente esse padrão. Siga as regras explicadas no Guia do desenvolvedor.

Muitas vezes, esse padrão será simplesmente um diretório (por exemplo, example.com/stores) ou um subdomínio (por exemplo, stores.example.com). Esses padrões podem ser deduzidos facilmente com apenas alguns URLs.

Ao lidar com aplicativos complexos, talvez ser necessário repetir as etapas acimas com vários URLs voltados ao usuário que exibem um mapa. No entanto, esse processo pode ser muito trabalhoso e ainda resultar em um conjunto de URLs incompleto. Para aplicativos desse tipo, os desenvolvedores provavelmente serão a melhor opção para informar o padrão de URLs.