it-swarm.com.de

Google Maps JavaScript API RefererNotAllowedMapError

Wir versuchen, eine Geoplacement-App für einen unserer Kunden zu entwickeln, und wir möchten sie zuerst in unserer eigenen Domäne testen.

Wir haben für Google Maps JavaScript API unterzeichnet, und wir haben einen gültigen Browserschlüssel, und unsere Domain www.grupocamaleon.com ist berechtigt, diesen Schlüssel zu verwenden.

Aber wir können nicht einmal das einfachste Beispiel machen, um fehlerfrei zu laufen.

Wir haben in unserer Domain und mit unserem Schlüssel die folgende Demo:

(1) http://www.grupocamaleon.com/boceto/aerial-simple.html

Aber es funktioniert nicht und die Firebug-Konsole sagt:

"Google Maps-API-Fehler: Google Maps-API-Fehler: RefererNotAllowedMapError (Link zur Google-Dokumentation zu RefererNotAllowedMapError) Ihre zu autorisierende Site-URL: (1)"

Auf meiner Seite mit den Anmeldeinformationen fehlt die Möglichkeit, Referrer hinzuzufügen, so dass Lösungen mit dem Hinzufügen von Referrern derzeit nicht möglich sind.

Meine Anmeldeinformationen Seite:

 enter image description here

Warum bekommen wir diesen Fehler? Wie können wir das beheben? TIA

Ich weiß, dass dies eine alte Frage ist, auf die es bereits mehrere Antworten gibt, aber ich hatte das gleiche Problem. Für mich bestand das Problem darin, dass ich dem Beispiel folgte, das auf console.developers.google.com angegeben ist, und meine Domänen im Format *.domain.tld/* eingegeben hat. Das hat überhaupt nicht funktioniert, und ich habe versucht, alle möglichen Variationen wie domain.tld, domain.tld/*, *.domain.tld usw. hinzuzufügen.

Was für mich gelöst wurde, war das Hinzufügen des eigentlichen protocol; http://domain.tld/* ist der einzige, den ich für meine Website brauche. Ich denke, ich muss https://domain.tld/* hinzufügen, wenn ich zu HTTPS wechseln würde.

Update: Google hat den Platzhalter endlich so aktualisiert, dass er jetzt http enthält:

 Google Maps API referrer input field

140
powerbuoy

Laut der Dokumentation bedeutet 'RefererNotAllowedMapError'

Die aktuelle URL, die das Google Maps JavaScript API lädt, lautet nicht zur Liste der erlaubten Verweise hinzugefügt. Bitte überprüfen Sie den Referrer Einstellungen Ihres API-Schlüssels in der Google Developers Console.

Ich habe die Google Maps Embed API für meine persönliche/berufliche Nutzung eingerichtet und habe bisher keine HTTP-Verweise angegeben. Ich melde keine Fehler an. Ihre Einstellungen müssen Google dazu bringen, dass die URL, die Sie besuchen, nicht registriert oder zulässig ist.

 enter image description here

16
TRose

Kommen Sie bei Google, Sie sind intelligenter als die API-Anmeldeinformationsseite. (Ich weiß, weil ich zwei Söhne habe, die dort arbeiten.)

Die Liste der "Referrer" ist weitaus wählerischer als sie zulässt. (Natürlich ist es sollte mehr verzeihend.) Hier sind einige Regeln, nach denen ich Stunden erkannte:

Es gibt wahrscheinlich andere Regeln, aber dies ist ein langwieriges Ratespiel.

15
Rick James

Ich habe viele Verweisvarianten ausprobiert und auch 5 Minuten gewartet, bis mir klar wurde, dass das Beispiel, das Google im Formularfeld ausfüllt, fehlerhaft ist. Sie zeigen:

*.example.com/*

Das funktioniert jedoch nur, wenn Sie subdomain. oder www. vor Ihrem Domainnamen haben. Folgendes hat für mich sofort funktioniert (unter Ausschluss des führenden Zeitraums aus dem Beispiel von Google):

*example.com/*
14
ow3n

Erinnern Sie sich einfach daran, dass es bei Änderungen nur bis zu 5 Minuten dauern kann, bis die Einstellungen wirksam werden. 

9
Putu De

Entsprechend den google docs Dies geschah, weil die url, auf der Sie das Google Maps API verwenden, not registered in list of allowed referrers

BEARBEITEN: 

Von Google Text & Tabellen

Alle Unterdomänen einer angegebenen Domäne sind ebenfalls autorisiert. 

Wenn http://example.com autorisiert ist, ist http://www.example.com ebenfalls berechtigt. Das Gegenteil trifft nicht zu: Wenn http://www.example.com autorisiert ist, ist http://example.com nicht unbedingt autorisiert

Konfigurieren Sie also bitte die http://testdomain.com-Domäne. Dann beginnt Ihr http://www.testdomain.com mit der Arbeit.

7
RIYAJ KHAN

Vergewissern Sie sich, dass auch das richtige APIS aktiviert ist.

Ich habe alle der oben genannten Sternchen, Domain-Tlds, Schrägstriche, Backslashes und alles ausprobiert, selbst als letzte Hoffnung nur eine URL.

All dies hat nicht funktioniert und schließlich wurde mir klar, dass Google jetzt auch verlangt, welche APIs Sie verwenden möchten (siehe Screenshot).

 enter image description here

Ich hatte keine, die ich brauchte, aktiviert (für mich war dies die JavaScript-API von Google Maps).

Nachdem ich es aktiviert hatte, funktionierte alles gut mit:

http://www.example.com/ *

Ich hoffe das hilft jemandem! :)

6
David Robertson

Ich habe festgestellt, dass auch Ihr HTTP Referreres gültig genug ist, ein falscher Satz von API Restrictions verursacht Google Maps JavaScript API error: RefererNotAllowedMapError.

Zum Beispiel:

  • Sie verwenden die Javascript-API für den Schlüssel.
  • http://localhost/* zu Application Restrictions / HTTP Referrences hinzufügen
  • Wählen Sie Maps Embed API anstelle von Maps Javascript API.
  • Dies verursacht RefererNotAllowedMapError
5
hiroshi

 enter image description here

Akzeptiere Anfragen von diesen HTTP-Referrern (Websites)

Schreibe localhost Verzeichnispfad

4

Es gibt viele vermeintliche Lösungen über mehrere Jahre hinweg, und einige funktionieren nicht mehr, andere haben es nie getan.

Konfiguration:

Google Maps JavaScript API muss ordnungsgemäß funktionieren mit…

  • mehrere Domänen rufen die API auf: example.com und example.net
  • beliebige Subdomains: user22656.example.com usw.
  • sowohl sichere als auch Standard-HTTP-Protokolle: http://www.example.com/ und https://example.net/
  • unbestimmte Pfadstruktur (d. h. eine große Anzahl verschiedener URL-Pfade)

Lösung:

  • Eigentlich mit dem Muster aus dem Platzhalter: <https (or) http>://*.example.com/*.
  • Das Protokoll nicht auslassen, sondern zwei Einträge pro Domäne hinzufügen (einen pro Protokoll).
  • Ein zusätzlicher Eintrag für Subdomains (mit einem *., der den Hostnamen anführt).
  • Ich hatte das Gefühl, dass der Fehler RefererNotAllowedMapError immer noch in der richtigen Konfiguration angezeigt wurde (und genügend Zeit abgewartet hat). Ich löschte den Berechtigungsschlüssel, wiederholte die Anforderung (jetzt InvalidKeyMapError abrufend), erstellte neue Berechtigungsnachweise (unter Verwendung der gleichen Einstellung), und es funktionierte seitdem.
  • Das Hinzufügen von lediglich Protokoll und Domäne schien Subdomains nicht enthalten zu haben.
  • Für eine der Domänen sieht die Arbeitskonfiguration folgendermaßen aus:

 Screenshot from Google API configuration

(Als Text :)

Accept requests from these HTTP referrers (web sites)
    https://*.example.com/*
    https://example.com/*
    http://*.example.com/*
    http://example.com/*
4
dakab

sie zeigen einen Screenshot Ihrer API-Anmeldeinformationen-Seite, müssen jedoch auf "Browsertaste 1" klicken und von dort aus Weiterleitungen hinzufügen.

3
ITwrx

Ich füge 2 Website-Domains hinzu, "*" in der Subdomain ist nicht funktionsfähig, aber für meine Websites wurde mit dem gleichen Google Map-API-Schlüssel eine spezifische Subdomain "WWW" und eine Nicht-Subdomain bearbeitet.

Nicht '*' in der Subdomain verwenden

Ich hoffe es hilft.

2
Pare

Ich habe den gleichen Fehler erfahren:

 enter image description here

Dieser Link beschreibt das Einrichten von API-Schlüsseleinschränkungen: https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions

In meinem Fall bestand das Problem darin, dass ich diese Einschränkung verwendete: 

HTTP-Referrer (Websites) Akzeptieren Sie Anforderungen von diesen HTTP-Referrern (Websites) (Optional) Verwenden Sie * für Platzhalter. Wenn Sie dieses Feld leer lassen, Anfragen werden von jedem Referrer angenommen. Stellen Sie sicher, dass Sie Verweise hinzufügen vor Verwendung dieses Schlüssels in der Produktion . https://*.example.net/*

Dies bedeutet, dass URLs wie https://www.example.net oder https://m.example.net oder https://www.example.net/San-salvador/ würde funktionieren. URLs wie https://example.net oder https://example.net oder https://example.net/San-salvador/ funktionieren jedoch nicht. Ich musste einfach einen zweiten Referrer hinzufügen:

https://example.net/*

Das hat das Problem für mich behoben.

2
Jaime Montoya

Für tiefere verschachtelte Seiten

Wenn sich in einem Ordner beispielsweise ein Projekt oder verschachtelte Seiten befinden

http://yourdomain.com/your-folder/your-page kann hier eingegeben werden

http://yourdomain.com/*/*

Der wichtige Teil ist /*/*/*, abhängig davon, wie weit Sie gehen müssen

Es scheint, dass der * nicht mit / übereinstimmt oder in tiefere Pfade gerät.

Dies gibt Ihrer Domäne Zugriff, auch wenn Sie nicht tiefer verschachtelt sind.

2
Radmation

Dies ist ein weiteres Google-Produkt mit einer schrecklichen Implementierung.

Das Problem, das ich dabei festgestellt habe, ist, dass es nicht funktioniert, wenn Sie einen API-Schlüssel nach IP-Adresse einschränken ... ABER es liegt weit entfernt von Google, diesen Punkt zu verdeutlichen ...

API-Schlüssel mit einer IP-Adressbeschränkung können nur mit Webservices verwendet werden, die für die serverseitige Verwendung vorgesehen sind (z. B. die Geocoding-API und andere Webservice-APIs). Die meisten dieser Webdienste verfügen über gleichwertige Dienste in der Maps JavaScript-API (siehe z. B. Geokodierungsdienst). Um die clientseitigen Dienste der Maps JavaScript-API zu verwenden, müssen Sie einen separaten API-Schlüssel erstellen, der mit einer Einschränkung für HTTP-Verweise geschützt werden kann (siehe Einschränken eines API-Schlüssels).

https://developers.google.com/maps/documentation/javascript/error-messages

FFS Google ... Ziemlich wichtige Information, die beim Einrichten geklärt werden sollte ...

2
php-b-grader

Ich habe endlich mit diesem Tipp von Google gearbeitet: ( https://support.google.com/webmasters/answer/35179 )

Hier sind unsere Definitionen von Domain und Site. Diese Definitionen sind spezifisch für die Überprüfung der Suchkonsole:

http://example.com/ - A site (because it includes the http:// prefix)
example.com/ - A domain (because it doesn't include a protocol prefix)
puppies.example.com/ - A subdomain of example.com
http://example.com/petstore/ - A subdirectory of http://example.com site
2
jmm

Das Aufheben der Einschränkungen (auf None) hat für mich funktioniert. 

1
Robot Boy
  1. Dass Ihre Abrechnung aktiviert ist

  2. Dass Ihre Website zu Google Console hinzugefügt wurde

  3. Dass Ihre Website zu den Empfehlungen in Ihrer App hinzugefügt wird.

  4. (Platzhalter für www und keine www setzen)

http://www.example.com/ * und http://example.com/ *

  1. Dass Javascript Maps aktiviert ist und Sie die richtigen Anmeldeinformationen verwenden

  2. Dass die Website zu Ihrem DNS hinzugefügt wurde, um die oben genannte Google-Konsole zu aktivieren.

  3. Lächle, wenn es funktioniert!

1
Morris

Keine dieser Korrekturen funktionierte für mich, bis ich herausfand, dass RefererNotAllowedMapError darauf zurückzuführen ist, dass kein Rechnungskonto mit dem Projekt verknüpft ist. Aktivieren Sie daher Ihre kostenlose Testversion oder was auch immer.

1
Owen Masback

Ich habe mich bemüht, dies auch zum Laufen zu bringen, aber hier sind einige Hinweise:

  • Die URLs, die als Verweise festgelegt sind, umfassen http, z. http://example.com/*
  • Google Maps JavaScript API wurde aktiviert
  • Auf diesem Konto wurde eine Abrechnung eingerichtet

Sobald all dies oben behoben wurde, werden die Karten wie erwartet angezeigt.

1
FMCorz

http://www.example.com/ * hat nach Tagen und Tagen des Versuchens für mich gearbeitet.

1
Shingai Munyuki

Platzhalter (Sternchen) SIND NICHT auf Subdomains erlaubt. 

  • FALSCH: * .example.com/*
  • RECHTS: example.com/*

Vergessen Sie, was Google auf dem Platzhalter sagt, es ist nicht erlaubt.

0
Daniel Loureiro

Ich habe versucht, die Places-API (Autocomplete) zu verwenden, und musste auch die Maps Javascript API in der Google Cloud Console aktivieren, bevor die Places-API funktioniert.

0
braed

In der JavaScript-Konsole von Chrome wird empfohlen, die gesamte Seitenadresse in meiner HTTP-Verweisliste anzugeben. In diesem Fall http://mywebsite.com/map.htm Obwohl die genaue Adresse http: //www.mywebsite lautet. com/map.htm - Ich hatte bereits Wildcard-Stile wie von anderen vorgeschlagen aufgelistet, aber dies war die einzige Möglichkeit, wie es für mich funktionieren würde.

0
KJB

Überprüfen Sie Ihre Deckerklärung vor Ort. Verwenden Sie zum Laden der JavaScript-API von Google Maps ein Skript-Tag wie dieses 

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>

Ich verwende diese Deklaration auf meiner Wordpress-Site in der function.php-Datei

wp_enqueue_script("google-maps-v3", "//maps.google.com/maps/api/js?key=YOUR_API_KEY", false, array(), false, true);

Ich habe API-Schlüssel für dieses Format festgelegt, und es funktioniert einwandfrei

http://my-domain-name(without www).com/*

diese Erklärung funktioniert nicht

*.my-domain-name.com/*
0
Nalaskow

Durch meine Erfahrung

http://www.example.com

hat gut funktioniert, aber https erforderlich/* am Ende

0
RationalRabbit