Diese IP, Site oder mobile Anwendung ist nicht berechtigt, diesen API-Schlüssel zu verwenden


98

Ich verwende https://maps.googleapis.com/maps/api/geocode/json ? Verknüpfen Sie mit dem Serverschlüssel und der Benutzer-IP, um den Breiten- und Längengrad einer Adresse zu ermitteln. Wenn ich versuche, finde ich den Fehler als

Ich habe einen Serverzugriffsschlüssel von Google und habe die IP-Adresse meines Servers in die weiße Liste aufgenommen.

Die URL, auf die ich über PHP CURL zugreifen möchte, lautet:

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

Das Ergebnis, das ich bekomme:

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

Gibt es etwas, das ich konfigurieren muss? Die Geokodierungs-API ist ebenfalls aktiviert.


Sie müssen einen autorisierten Schlüssel von Google erhalten und ihn in die API
Dimag Kharab

Es ist bereits ein API-Schlüssel verfügbar
Sanket

Überprüfen Sie die Antwort von Mike, es hat bei mir
funktioniert

Akzeptiere die Antwort von mike20132013! Es klappt!
Aveschini

Antworten:


150

Ich hatte das gleiche Problem und fand es.

Für die URL wird am Ende der Serverschlüssel und nicht der API-Schlüssel für die App benötigt.

Grundsätzlich fügen Sie einfach den Serverschlüssel am Ende der URL wie folgt hinzu:

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

Führen Sie nun die folgenden Schritte aus , um den Serverschlüssel zu erhalten :

1) Gehen Sie zur Entwicklerkonsole https://code.google.com/apis/console/

2) Erstellen Sie in den Anmeldeinformationen unter Öffentlicher API-Zugriff einen neuen Schlüssel

3) Wählen Sie den Serverschlüssel aus der Option.

4) Geben Sie Ihre IP-Adresse in das Feld ein. Wenn Sie mehr IP-Adressen haben, können Sie diese einfach in jede einzelne Zeile einfügen. HINWEIS: Geben Sie die IP-Adresse nur ein, wenn Sie sie für Testzwecke verwenden möchten. Andernfalls lassen Sie den Abschnitt IP-Adresse leer.

5) Wenn Sie fertig sind, klicken Sie auf Erstellen. Ihr neuer Serverschlüssel wird generiert. Anschließend können Sie diesen Serverschlüssel zu Ihrer URL hinzufügen.

Das Letzte ist, dass Sie den Sensor = true nicht in die Mitte der URL setzen, sondern am Ende wie folgt hinzufügen können:

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

Dies wird das Problem definitiv lösen und denken Sie daran, den Serverschlüssel für zu verwenden Places API.

BEARBEITEN

Ich glaube, die Web-URL hat sich in den letzten Jahren geändert. Sie können jetzt von hier aus auf die Entwicklerkonsole zugreifen - https://console.developers.google.com/apis/dashboard

  • Navigieren Sie zur Entwicklerkonsole - https://console.developers.google.com/ oder verwenden Sie den Link aus Details, um direkt zum API-Dashboard zu navigieren.
  • Suchen Sie unter der Entwicklerkonsole im linken Navigationsbereich nach Label
  • Projekt auswählen
  • Wählen Sie im linken Navigationsbereich Anmeldeinformationen
  • Sie können den Typ der Anmeldeinformationen nach Bedarf in der oberen Navigationsleiste erstellen .

Hoffe, diese Antwort wird Ihnen und anderen Zuschauern helfen. Viel Glück .. :)


8
Sehr wichtig 4) Geben Sie Ihre IP-Adresse in das Feld ein. Wenn Sie mehr IP-Adressen haben, können Sie diese einfach in jede einzelne Zeile einfügen. HINWEIS: Geben Sie die IP-Adresse nur ein, wenn Sie sie für Testzwecke verwenden möchten. Andernfalls lassen Sie den Abschnitt IP-Adresse leer.
Sheraz Ahmad Khilji

6
Das ist richtig. Geben Sie die IP-Adresse / Adressen nur zu Testzwecken an. Sonst lass es leer. Weil Sie die App oder den API-Schlüssel so einschränken, dass sie nur auf bestimmten Geräten / Apps funktionieren.
Mike20132013

1
@ Johnshumon Ja, ich denke .. habe die Antwort seit Ewigkeiten nicht mehr aktualisiert. Könnten einige neue API-Änderungen sein.
Mike20132013

1
Vielleicht möchten Sie auch sicherstellen, dass der Google Places API-Webdienst ebenfalls eine aktivierte API ist
Justin Wilson,

1
Wir haben stundenlang damit gerungen, bevor festgestellt wurde, dass das neue "Projekt" jetzt mit einem Google Cloud-Abrechnungskonto verknüpft sein muss, damit die Google-API diese verschiedenen generischen Fehler nicht mehr ausgibt. Der Schwellenwert kann auf 0 US-Dollar festgelegt werden, sodass Ihnen keine Gebühren berechnet werden, wenn die Nutzung das zulässige Kontingent überschreitet.
Sparky

15
  1. Schlüssel auswählen
  2. Registerkarte "API-Einschränkung"
  3. Wählen Sie den API-Schlüssel
  4. sparen
  5. Wählen Sie Anwendungsbeschränkung -> Keine
  6. sparen

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


Ich hatte nur wenige Dienste in API-Einschränkungen aufgeführt, aber keine Geokodierung
Muhammad Umer

Lief wie am Schnürchen. Dank versuchte Geokodierung. Ich habe die App-Einschränkungen auf "Keine" gesetzt, wie Sie betont haben, und es hat funktioniert.
Ravi

4
Einschränkungen: Keine ist ziemlich gefährlich.
Deniss M.

8
Das Deaktivieren der Sicherheit ist keine Lösung!
Bartholomej

Lassen Sie den API-Schlüssel nicht uneingeschränkt! Das neue "Projekt" muss jetzt mit einem Abrechnungskonto verknüpft sein, damit die Google-API diese verschiedenen generischen Fehler nicht mehr ausgibt. Der Schwellenwert kann auf 0 US-Dollar festgelegt werden, sodass Ihnen keine Gebühren berechnet werden, wenn die Nutzung das zulässige Kontingent überschreitet.
Sparky

14

Zusätzlich zu dem Ihnen zugewiesenen API-Schlüssel überprüft Google auch die Quelle der eingehenden Anforderung anhand REFERRERder IP-Adresse oder der IP-Adresse. Um ein Beispiel in Curl auszuführen, erstellen Sie eine neue Server Keyin der Google APIs-Konsole . Beim Erstellen müssen Sie die IP-Adresse des Servers angeben. In diesem Fall ist dies Ihre lokale IP-Adresse . Sobald Sie eine erstellt habenServer Key IP-Adresse und auf die Whitelist gesetzt haben, sollten Sie in der Lage sein, den neuen API-Schlüssel in curl zu verwenden.

Vermutlich haben Sie Ihren API-Schlüssel als einen Schlüssel erstellt, bei Browser Keydem Sie Ihre IP-Adresse nicht auf die Whitelist setzen müssen, sondern stattdessen das REFERRERHTTP-Header-Tag zur Validierung verwenden. curl sendet dieses Tag nicht standardmäßig, sodass Google Ihre Anfrage nicht validieren konnte.


1+ Für die Verwendung des Geocode-Dienstes von Google muss ein Server-API-Schlüssel erstellt werden. Außerdem muss der Google Map Geocodding-Dienst über die API-Konsole von Google aktiviert werden. Vielen Dank!
Sumit Munot

Wir haben stundenlang damit gerungen, bevor festgestellt wurde, dass das neue "Projekt" jetzt mit einem Google Cloud-Abrechnungskonto verknüpft sein muss, damit die Google-API diese verschiedenen generischen Fehler nicht mehr ausgibt. Der Schwellenwert kann auf 0 US-Dollar festgelegt werden, sodass Ihnen keine Gebühren berechnet werden, wenn die Nutzung das zulässige Kontingent überschreitet.
Sparky

6

Die Google Places-API unterstützt derzeit keine Android- oder iOS-Schlüssel, die über die Google APIs-Konsole generiert wurden. Derzeit werden nur Server- und Browserschlüssel unterstützt.


1
Interessant ... wie generiert man einen Schlüssel zur Verwendung in Android- oder iOS-Apps?
Graham Perks

Ihre Browser-Tasten funktionieren unter Android und iOS. Holen Sie sich Browser-Schlüssel in Google APIs Console
Nazrul Islam

Sie tun dies nicht ohne zusätzlichen Aufwand. Ich habe das erst nach einem frustrierenden Tag gestern herausgefunden. Es gibt einen zusätzlichen Schritt für Apps: stackoverflow.com/a/58136437/434004
Graham Perks

3

Sie versuchen, einen API-SCHLÜSSEL zu verwenden, den Sie so eingeschränkt haben, dass diese Aktion nicht zulässig ist.

Laut 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.

Das Richtige ist also, einen weiteren API-SCHLÜSSEL zu erstellen und die richtigen Einschränkungen für diese Angelegenheit auszuwählen. Wählen Sie in Ihrem Fall "IP-Adressen" (unter "Anwendungsbeschränkungen") und verwenden Sie "EINZELTEIL HINZUFÜGEN", um Ihre Server-IP hinzuzufügen. Beachten Sie, dass das Verlassen einer leeren Liste nicht funktioniert und dazu führt, dass Google Ihre Einschränkungen in "Keine" ändert.

Vergessen Sie auch nicht, die relevanten APIs unter "API-Einschränkungen" (in Ihrem Fall "Geocoding API") hinzuzufügen.

Eine letzte Sache: Google blockiert die Verwendung dieser API, bis Sie Ihre App mit dem Google Cloud Billing-Konto verknüpfen. Wenn Sie es also noch nicht getan haben, heißt es, sobald Sie eine Antwort erfolgreich erhalten haben, dass Sie es zuerst tun müssen (es gibt ein kostenloses Startpaket).


2

Sie erstellen einen Schlüssel ohne Referer. Geben Sie nicht die Referer-Adresse ein



2
Überprüfen Sie beim Erstellen des Schlüssels, an dem Sie die Referer-Adresse hinzufügen können, dass Sie dort etwas hinzugefügt haben. falls hinzugefügt Clear it
DeadlyDroid

2

Für die Google Place-API muss der Referer-HTTP-Header beim API-Aufruf enthalten sein.

Fügen Sie den HTTP-Header "Referer: yourdomain.com" hinzu, um die Antwortprobleme zu beheben.


1
Während dies die Frage beantworten kann, ist es immer eine gute Idee, einen Text in Ihre Antwort einzufügen, um zu erklären, was Sie tun. Lesen Sie, wie Sie eine gute Antwort schreiben . Außerdem sollten Sie Code einfügen.
Jørgen R

Könnten Sie bitte einen Ausschnitt zur Verfügung stellen
Sagar Devanga

Folgendes habe ich getan und es hat perfekt funktioniert: var options = {url: url, headers : {Referer: ' xxx.herokuapp.com '}}; request.get (Optionen, Funktion (...
Florida G.

1

Außerdem sollte die entsprechende API für das angegebene Projekt aktiviert sein

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


1

Für die neueste Version der API scheint das genaue Gegenteil für mich zuzutreffen.

Beim Aufrufen der URL https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>wurde der folgende Fehler angezeigt

Sie müssen einen API-Schlüssel verwenden, um jede Anforderung bei Google Maps Platform-APIs zu authentifizieren. Weitere Informationen finden Sie unter http://g.co/dev/maps-no-account

Sobald ich die Bestellung auf https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>sie umgestellt habe, hat es gut funktioniert.

Beachten Sie, dass die oben erhaltene Fehlermeldung die Meldung war, die ich erhalten habe, als ich direkt zur URL im Browser gegangen bin. Als ich die API von einem Softwareprogramm aus aufrief, erhielt ich eine HTML-Antwort mit der folgenden Meldung:

Es tut uns leid ... aber Ihr Computer oder Netzwerk sendet möglicherweise automatisierte Anfragen. Zum Schutz unserer Benutzer können wir Ihre Anfrage derzeit nicht bearbeiten.


Wir haben stundenlang damit gerungen, bevor festgestellt wurde, dass das neue "Projekt" jetzt mit einem Google Cloud-Abrechnungskonto verknüpft sein muss, damit die Google-API diese verschiedenen generischen Fehler nicht mehr ausgibt. Der Schwellenwert kann auf 0 US-Dollar festgelegt werden, sodass Ihnen keine Gebühren berechnet werden, wenn die Nutzung das zulässige Kontingent überschreitet.
Sparky


0

Authentifizierung, Kontingente, Preise und Richtlinien Authentifizierung Um die Directions-API verwenden zu können, müssen Sie zuerst die API aktivieren und die richtigen Authentifizierungsdaten abrufen. Weitere Informationen finden Sie unter Erste Schritte mit Google Maps Platform.

Kontingente und Preise Auf der Verwendungs- und Abrechnungsseite finden Sie Details zu den Kontingenten und Preisen, die für die Wegbeschreibungs-API festgelegt wurden.

Richtlinien Die Verwendung der Directions-API muss den API-Richtlinien entsprechen.

Weitere Informationen finden Sie unter: --- https://developers.google.com/maps/documentation/directions/start?hl=de_DE


-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

nur in AppDelegate hinzufügen wie

            GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")

und entfernen Sie den Schlüssel in dieser URL.

jetzt ist url

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

-3

Deaktivieren Sie sowohl die Richtungs-API als auch die Geokodierungs-API und aktivieren Sie sie erneut.

Es funktioniert nur 5-10 Sekunden und deaktiviert sich dann automatisch.

Es bedeutet, dass Sie nur 5-10 Sekunden Zeit haben, um Ihre Zuordnung zu testen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.