web-dev-qa-db-fra.com

API Google Geocoding - REQUEST_DENIED

Apparemment, je n'ai pas besoin d'une "clé API de carte" pour utiliser "l'API de géocodage de Google" selon:

http://code.google.com/apis/maps/documentation/geocoding/index.html

Cependant, j'obtiens ceci:

{
  "status": "REQUEST_DENIED",
  "results": [ ]
}

Est-ce que cela signifie que mon adresse IP est bloquée? Que puis-je faire pour surmonter cela?

49
cs0815

Jusqu'à la fin de 2014, une source commune de cette erreur omettait le paramètre obligatoire sensor de la demande, comme ci-dessous. Cependant, à compter du 2014/12/31 ou plus tôt, ce n'est plus nécessaire:

Le paramètre du capteur

L'API de Google Maps nécessitait auparavant d'inclure le paramètre de capteur pour indiquer si votre application utilisait un capteur pour déterminer l'emplacement de l'utilisateur. Ce paramètre n'est plus requis.


Avez-vous spécifié le paramètre sensor dans la demande?

"REQUEST_DENIED" indique que votre demande a été refusée, généralement à cause de l'absence d'un paramètre de capteur.

sensor (requis) - Indique si la demande de géocodage provient ou non d'un périphérique doté d'un capteur de localisation. Cette valeur doit être vraie ou fausse

71
Rup

SUPPRIMEZ LE PARAMÈTRE D'APIKEY ET SA VALEUR

par exemple. https://maps.googleapis.com/maps/api/geocode/json?address=[YOUR ADDRESS]&sensor=true

18
PARTH DAVE

J'ai constaté que dans mon cas, l'appel au service sans protocole sécurisé (ce qui signifie: http), après l'ajout de la clé = API_KEY , était à l'origine de ce problème . Le passage à https l'a résolu.

17
shimshon

Si vous ne faites que copier et coller l'URL d'exemple fournie par Google sur leur site Web http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+ CA & sensor = true_or_false Il échouera à cause du mauvais paramètre du capteur. Vous devriez le changer en vrai ou en faux et non pas celui qu'ils ont écrit ... C'est peut-être l'erreur que vous avez eue, comme cela m'est arrivé ...

10
Alex

J'ai remarqué que vous obtenez également REQUEST_DENIED pour certaines adresses si vous n'encodez pas correctement votre adresse URL. Par exemple, dans

123 Main St #B, Mytown, CA 94110

le caractère '#' doit être codé comme% 23

8
J.T. Taylor

Pour ceux qui regardent cette page en 2017 ou au-delà, comme moi

Le capteur n'est plus requis, j'ai essayé et j'ai eu l'erreur:

SensorNotRequired

Je devais juste activer mon API de Google Maps Geocoding , qui semble être nécessaire de nos jours.

J'espère que ça aide quelqu'un comme moi.

6

J'ai eu ce problème et j'ai réalisé que je supposais que le géocodage était livré avec l'API de cartes JS. Cependant, il s'agit d'une API distincte que je n'avais pas activée dans la console cloud. L'activer l'a corrigé tout de suite.

6
user3709875

C'est nul Google ne vous laisse pas que votre service n'est pas activé par ce compte. Essayez d'abord de l'activer . Allez ici https://console.developers.google.com/project Et créez un nouveau projet avec le service de lieu activé pour résoudre votre problème.

4
Abbas Uddin

Pour les personnes aux prises avec ce problème, je viens de découvrir que l’API de géocodage ne peut pas être utilisée avec des clés d’API ayant des restrictions de référent. Supprimez simplement toutes vos restrictions de référent et vous devriez être bon.

Si vous utilisez d'autres API autorisant des clés avec des restrictions de référent (telles que l'API JS de Maps), il est probablement préférable de créer une 2ème clé sans restrictions à utiliser exclusivement pour le géocodage, car d'autres API peuvent afficher votre clé publiquement et par quelqu'un les autres pourraient commencer à l'utiliser sur leur propre site.

3
Emilio Venegas

J'ai aussi eu ce problème en utilisant le module drupal 7 Location. Le remplissage automatique de tous les emplacements vides a entraîné cette erreur. L’exécution manuelle d’une des requêtes vers l’API d’emplacement a entraîné cette erreur dans le code JSON renvoyé:

"Les clés de l'API du navigateur ne peuvent pas avoir de restrictions de référencement lorsqu'elles sont utilisées avec cette API."

La résolution du problème était alors simple: créez une nouvelle clé sans aucune restriction et utilisez-la uniquement pour le géocodage. 

Remarque pour ceux qui découvrent les clés API Google: par restrictions, cela signifie que les demandes utilisant une clé API s'appliquent à des domaines/sous-domaines spécifiques. (Par exemple, seules les demandes de http://votredomaine.com sont autorisées).

3
Koen Cornelis

Comme vous le dites, cela peut signifier que votre adresse IP a été bloquée. Je m'assurerais que vous spécifiez le paramètre key sur la chaîne de requête pour la demande d'API de géocodage.

https://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=Placename&key=XXxxxXXxXxxxxXXxx

Assurez-vous également que si vous avez configuré les restrictions d'adresse IP dans la console du développeur, vous avez autorisé l'adresse IP correcte. Cliquez simplement sur le projet dans la liste pour afficher les adresses IP autorisées.

 Example of project list in Google Developer Console

Si vous rencontrez toujours des problèmes, vous pouvez envisager d’imprimer les valeurs des éléments status et error_message à partir de la réponse de Google. Vous verrez à peu près ceci:

REQUEST_DENIED - This IP, site or mobile application is not authorized to use this API key. Request received from IP address 123.4.5.678, with empty referer

S'il ne mentionne pas de restriction d'adresse IP, il est possible que Google trouve une solution au problème avec un correctif.

2
Luke Alderton

Google renvoie un message d'erreur très utile, qui aide à corriger le problème!

Dim Request         As New XMLHTTP30
Dim Results         As New DOMDocument30
Dim StatusNode      As IXMLDOMNode
Request.Open "GET", "https://maps.googleapis.com/maps/api/geocode/xml?" _
  & "&address=xxx", False
Request.Send
Results.LoadXML Request.responseText
Set StatusNode = Results.SelectSingleNode("//status")
Select Case UCase(StatusNode.Text)
    Case "REQUEST_DENIED"
          Debug.Print StatusNode.NextSibling.nodeTypedValue
    ... 

Exemples de messages d'erreur

Message 1: Les demandes adressées à cette API doivent être sur SSL. Chargez l'API avec "https: //" Au lieu de "http: //".

Message 2: Demande refusée par le serveur: vous devez utiliser une clé API pour authentifier chaque demande auprès des API de la plateforme Google Maps. Pour plus d'informations, s'il vous plaît ...

0
Horst Schmid