it-swarm.com.de

API-Schlüssel Browser-API-Schlüssel dürfen bei Verwendung mit dieser API keine Verweisbeschränkungen aufweisen

Ich versuche, Geokodierung zu programmieren. Ich habe einen API-Schlüssel erstellt, aber wenn ich ihn in meinen Website-Code einfüge, bekomme ich nichts, aber wenn ich keine API benutze, funktioniert alles gut. Wenn ich sende:

https://maps.googleapis.com/maps/api/geocode/json?address=".$adres."&key=KLUCZ_XXX

Ich bekomme eine Antwort:

Browser API keys cannot have referer restrictions when used with this API.

Wenn ich benutze:

https://maps.googleapis.com/maps/api/geocode/json?address=".$adres" 

Das Ergebnis ist korrekt, aber die Anzahl der Abfragen ist pro Tag begrenzt.

Schlüsseleinschränkung: Verweise HTTP (Web) - auf die Domäne setzen, von der aus die Beschwörung abfragt. Die Google Maps-Geokodierungs-API ist aktiviert.

Muss der API-Schlüssel auch an anderer Stelle aktiviert werden, damit er funktioniert?

27
Damian

Es hört sich an, als ob Sie die API-Aufrufserver-Seite machen. Ich bin heute früher auf dieses Thema gestoßen. Da Sie für Ihren API-Schlüssel eine Referrer-Einschränkung festgelegt haben, kann er nur mit den Webdienst-APIs, einschließlich der Geocoding-API, im Browser ausgeführt werden. Es hat für mich nicht funktioniert, auch wenn der Referrer manuell in den Request-Headern gesetzt wurde. Die anderen Web-Service-APIs finden Sie auf dieser Seite: https://developers.google.com/maps/web-services/

Wichtig: Wenn Sie eine der Webdienst-APIs mit einem API-Schlüssel mit Referenzeinschränkungen verwenden, schlagen Ihre Anforderungen mit der Fehlermeldung fehl: "API-Schlüssel können bei Verwendung mit dieser API keine Referenzeinschränkungen aufweisen." Sie sollten zu einer Servereinschränkung wechseln.

Sie müssen einen separaten Schlüssel erstellen, um serverseitig zu verwenden. Sie können Ihre Einschränkung von einer browser-Einschränkung in eine server-Einschränkung ändern, indem Sie anstelle von Browser-Referrern IP-Adressen verwenden, um den Zugriff einzuschränken.

Informationen zum Wechseln des Schlüsseltyps in einen durch Server eingeschränkten Schlüssel finden Sie in diesem Abschnitt in den Maps-APIs FAQ: https://developers.google.com/maps/faq#switch-key-type

Alternativ können Sie weiterhin einen Browserschlüssel und einen clientseitigen Geocode (JavaScript) verwenden und das Ergebnis dann über ajax an das Backend zurückgeben.

47
Raymond

Wenn serverseitige Geokodierung keine Option ist, sollten Sie den Geokodierer aus der Google Javascript API verwenden. Sie können HTTP-Referenzeinschränkungen für diese API festlegen.

Google selbst sagt , um die Nicht-Javascript-Geocoder-API für die dynamische Geocodierung zu vermeiden :

Dieser Dienst ist im Allgemeinen für die Geokodierung statischer (im Voraus bekannt) Adressen für die Platzierung von Anwendungsinhalten auf einer Karte; Dieser Dienst kann nicht in Echtzeit auf den Benutzer reagieren Eingang. Informationen zur dynamischen Geokodierung (z. B. in einer Benutzeroberfläche Element) finden Sie in der Dokumentation zum Maps JavaScript API-Client Geocoder und/oder die Standort-APIs der Google Play-Dienste.

0
Slash