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.

user3336944
quelle
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 .. :)

mike20132013
quelle
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

Tuan Nguyen
quelle
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.

Michael Venable
quelle
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.

Nazrul Islam
quelle
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).

brkeyal
quelle
2

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

DeadlyDroid
quelle
Könnten
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.

Ramesh
quelle
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

dav
quelle
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.

Kilkfoe
quelle
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

Für iOS- oder Android-Apps benötigt der Schlüssel ein zusätzliches Privileg.

Gehen Sie zu Google Console -> APIs und Dienste -> Bibliothek. Tippen Sie auf die Ortsbibliothek für Ihre Plattform und anschließend auf Aktivieren.

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

Graham Perks
quelle
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

Sudipta Ghosh
quelle
-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
Abubakar Bizimana
quelle
-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.

Ѕћӗһ Ӡӓԃѧ
quelle