Este IP, site ou aplicativo móvel não está autorizado a usar esta chave API

100

Estou usando https://maps.googleapis.com/maps/api/geocode/json ? link com a chave do servidor e IP do usuário para encontrar a latitude e longitude de qualquer endereço, quando estou tentando encontro o erro como

Eu tenho uma chave de acesso ao servidor do google e coloquei o endereço IP do meu servidor na lista branca.

O URL que estou tentando acessar via PHP CURL é:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX

O resultado que estou obtendo:

Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)

Preciso configurar alguma coisa. A API de geocodificação também está ativada.

user3336944
fonte
você tem que obter uma chave autorizada do google e colocá-la na api
Dimag Kharab
Já existe uma chave API disponível
sanket
Verifique a resposta de Mike, funcionou para mim
Sheraz Ahmad Khilji
Aceite a resposta de mike20132013! Funciona!
aveschini 01 de

Respostas:

150

Eu tive o mesmo problema e achei isso.

No url, é necessária a chave do servidor no final e não a chave da API do aplicativo.

Então, basicamente, você apenas adiciona a chave do servidor no final da URL assim:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY

Agora, para obter a chave do servidor, basta seguir estas etapas:

1) Vá para o console do desenvolvedor https://code.google.com/apis/console/

2) Em Credenciais, em Acesso à API pública, crie uma nova chave

3) Selecione a chave do servidor na opção.

4) Insira seu endereço IP no campo e se você tiver mais endereços IP, você pode apenas adicionar em cada linha. NOTA: Digite o endereço IP apenas quando quiser usá-lo para fins de teste. Caso contrário, deixe a seção Endereço IP em branco.

5) Quando terminar, clique em criar e sua nova chave de servidor será gerada e você pode adicionar essa chave de servidor ao seu URL.

A última coisa é que, em vez de colocar o sensor = true no meio do URL, você pode adicioná-lo no final desta forma:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true

Isso definitivamente resolverá o problema e lembre-se de usar a chave do servidor para Places API.

EDITAR

Acredito que o URL da web mudou nos últimos anos. Você pode acessar o console do desenvolvedor aqui agora - https://console.developers.google.com/apis/dashboard

  • Navegue até o console do desenvolvedor - https://console.developers.google.com/ ou use o link de detalhes para navegar diretamente para o painel de API.
  • No console do desenvolvedor, encontre Rótulo no painel de navegação esquerdo
  • Selecione o projeto
  • Escolha credenciais no painel de navegação esquerdo
  • Você pode criar o tipo de credencial na barra de navegação superior, conforme necessário.

Espero que esta resposta ajude você e outros espectadores. Boa sorte .. :)

mike20132013
fonte
8
Muito importante 4) Digite seu endereço IP no campo e se você tiver mais endereços IP, você pode apenas adicionar em cada linha. NOTA: Digite o endereço IP apenas quando quiser usá-lo para fins de teste. Caso contrário, deixe a seção Endereço IP em branco.
Sheraz Ahmad Khilji
6
Correto ... especifique apenas os endereços / endereços IP para fins de teste. Caso contrário, deixe em branco. Porque você está restringindo o aplicativo ou a chave da API para funcionar apenas nos dispositivos / aplicativos específicos.
mike20132013,
1
@johnshumon Sim, eu acho .. não atualizo a resposta há anos. Pode haver algumas novas mudanças na API.
mike20132013
1
Também pode querer ter certeza de que o serviço da web da API do Google Places é uma API habilitada
Justin Wilson,
1
Lutei com isso por horas antes de descobrir que o novo "projeto" agora deve ser vinculado a uma conta de faturamento na nuvem do Google para que a API do Google pare de fornecer esses vários erros genéricos. O limite pode ser definido como $ 0 para que você nunca seja cobrado se o uso exceder a cota permitida.
Sparky de
15
  1. Escolha a chave
  2. Guia API Restriction
  3. Escolha a chave API
  4. Salve 
  5. Escolha Restrição de aplicativo -> Nenhum
  6. Salve 

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Tuan Nguyen
fonte
Eu tinha poucos serviços listados nas restrições da API, mas não geocodificação
Muhammad Umer
funcionou como um encanto. Obrigado estava tentando geocodificar. Eu defini as restrições do aplicativo para nenhum como você apontou e funcionou.
Ravi
4
Restrições: nenhuma é muito perigosa.
Deniss M.
8
Desativar a segurança não é uma solução!
Bartholomej
NÃO DEIXE A CHAVE API SEM RESTRITO! O novo "projeto" agora deve ser vinculado a uma conta de faturamento para que a API do Google pare de fornecer esses vários erros genéricos. O limite pode ser definido como $ 0 para que você nunca seja cobrado se o uso exceder a cota permitida.
Sparky
14

Além da chave de API atribuída a você, o Google também verifica a origem da solicitação de entrada olhando para REFERRERou o endereço IP. Para executar um exemplo em cacho, criar um novo Server Keyno console de APIs do Google . Ao criá-lo, você deve fornecer o endereço IP do servidor. Nesse caso, será seu endereço IP local . Depois de criar um Server Keye colocar seu endereço IP na lista de permissões, você poderá usar a nova chave de API no curl.

Meu palpite é que você provavelmente criou sua chave de API como um Browser Keyque não exige que você coloque seu endereço IP na lista de permissões, mas em vez disso usa a REFERRERtag de cabeçalho HTTP para validação. curl não envia esta tag por padrão, então o Google não conseguiu validar sua solicitação.

Michael Venable
fonte
1+ Será necessário criar uma chave API do servidor para usar o serviço Geocode do Google. Também é necessário habilitar o serviço de geocodificação de mapas do Google a partir do console API do Google. Obrigado !!
Sumit Munot,
Lutei com isso por horas antes de descobrir que o novo "projeto" agora deve ser vinculado a uma conta de faturamento na nuvem do Google para que a API do Google pare de fornecer esses vários erros genéricos. O limite pode ser definido como $ 0 para que você nunca seja cobrado se o uso exceder a cota permitida.
Sparky de
6

A API do Google Places atualmente não oferece suporte a chaves Android ou iOS geradas no Console de APIs do Google. Apenas as chaves do servidor e do navegador são atualmente suportadas.

Nazrul Islam
fonte
1
Interessante ... então, como alguém gera uma chave para uso em aplicativos Android ou iOS?
Graham Perks
As chaves do seu navegador funcionarão no Android e iOS. Obtenha as chaves do navegador no console de APIs do Google
Nazrul Islam
Eles não fazem isso sem algum esforço extra. Acabei de descobrir isso depois de um dia frustrante de ontem; há uma etapa adicional para aplicativos: stackoverflow.com/a/58136437/434004
Graham Perks
3

Você está tentando usar uma chave de API que você restringiu de uma forma que não permite esta ação.

De acordo com o Google:

Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.

Portanto, a coisa certa a fazer é criar outra chave de API e escolher as restrições corretas para este assunto. No seu caso, escolha "endereços IP" (em "Restrições do aplicativo") e use "ADICIONAR UM ITEM" para adicionar o ip do servidor. Observe que deixar uma lista em branco não funcionará e resultará no Google alterando suas restrições para "Nenhuma".

Além disso, não se esqueça de adicionar as APIs relevantes em "Restrições de API" (no seu caso, "API de geocodificação").

Uma última coisa - o Google está bloqueando o uso desta API até que você vincule seu aplicativo à conta de faturamento do Google Cloud. Portanto, se você ainda não fez isso, depois de obter uma resposta com sucesso, ele dirá que você precisa fazer isso primeiro (tem um pacote inicial gratuito).

brkeyal
fonte
2

Você cria uma chave sem o referenciador, não insira o endereço do referenciador

DeadlyDroid
fonte
você poderia explicar
Sagar Devanga
2
Ao criar a chave, você tem um local para adicionar o Endereço de referência, verifique se você adicionou algo lá. if Added Clear it
DeadlyDroid
2

A API do Google Place requer que o cabeçalho HTTP referenciador seja incluído ao fazer a chamada API.

Inclua o cabeçalho HTTP "Referer: yourdomain.com" e isso deve corrigir os problemas de resposta.

Ramesh
fonte
1
Embora isso possa responder à pergunta, é sempre uma boa ideia incluir algum texto em sua resposta para explicar o que você está fazendo. Leia como escrever uma boa resposta . Além disso, você deve incluir algum código.
Jørgen R
Você poderia fornecer um trecho
Sagar Devanga
Veja o que fiz e funcionou perfeitamente: var options = {url: url, headers: {Referer: ' xxx.herokuapp.com '}}; request.get (options, function (...
Florida G.
1

Além disso, a API correspondente deve ser habilitada para o projeto em questão

https://console.developers.google.com/apis/library?project=projectnameaqui

dav
fonte
1

Para a última versão da API, o oposto exato parece ser verdadeiro para mim.

Ao ligar para o url, https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>recebi o seguinte erro

Você deve usar uma chave de API para autenticar cada solicitação nas APIs da plataforma do Google Maps. Para obter informações adicionais, consulte http://g.co/dev/maps-no-account

Depois de mudar o pedido para https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>ele funcionou bem.

Observe que a mensagem de erro recebida acima foi a mesma que recebi ao ir diretamente para a URL no navegador. Quando chamei a API de um programa de software, recebi uma resposta HTML com basicamente a seguinte mensagem:

Lamentamos ... mas seu computador ou rede podem estar enviando consultas automatizadas. Para proteger nossos usuários, não podemos processar sua solicitação no momento.

kilkfoe
fonte
Lutei com isso por horas antes de descobrir que o novo "projeto" agora deve ser vinculado a uma conta de faturamento na nuvem do Google para que a API do Google pare de fornecer esses vários erros genéricos. O limite pode ser definido como $ 0 para que você nunca seja cobrado se o uso exceder a cota permitida.
Sparky
0

Para aplicativos iOS ou Android, a chave precisa de um privilégio extra concedido.

Vá para o Console do Google -> APIs e serviços -> Biblioteca. Toque na biblioteca de locais para sua plataforma e, em seguida, toque em Ativar.

Consulte https://developers.google.com/maps/gmp-get-started#enable-api-sdk

Graham Perks
fonte
0

Autenticação, cotas, preços e políticas Autenticação Para usar a API de rotas, você deve primeiro ativar a API e obter as credenciais de autenticação adequadas. Para obter mais informações, consulte Primeiros passos com a plataforma do Google Maps.

Cotas e preços Revise a página de uso e faturamento para obter detalhes sobre as cotas e preços definidos para a API de direções.

Políticas O uso da API de direções deve estar de acordo com as políticas da API.

mais informações: visite: --- https://developers.google.com/maps/documentation/directions/start?hl=en_US

Sudipta Ghosh
fonte
-2
  url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY

adicionar apenas em AppDelegate como

            GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")

e remova a chave neste url.

agora url é

https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving
Abubakar Bizimana
fonte
-3

Desative a API de direção e a API de geocodificação e ative-a novamente.

ele funciona por apenas 5 a 10 segundos e então se desativa automaticamente.

isso significa que você tem apenas 5-10 segundos para testar sua atribuição.

Ѕћӗһ Ӡӓԃѧ
fonte