Staramy się stworzyć aplikację geoplacement dla jednego z naszych klientów i chcemy najpierw przetestować ją we własnej domenie.
Zarejestrowaliśmy się w Google Maps JavaScript API i mamy prawidłowy klucz przeglądarki, a nasza domena www.grupocamaleon.com została upoważniona do korzystania z tego klucza.
Ale nie możemy zrobić nawet najłatwiejszego przykładu, który działałby bez błędów.
Mamy w naszej domenie i z naszym kluczem następujące demo:
(1) http://www.grupocamaleon.com/boceto/aerial-simple.html
Ale to nie działa, a konsola Firebug mówi:
„Błąd interfejsu API Map Google: błąd interfejsu API Map Google: RefererNotAllowedMapError (link do dokumentacji Google w witrynie RefererNotAllowedMapError) Adres URL Twojej witryny do autoryzacji: (1)”
Na mojej stronie uwierzytelniającej brakuje możliwości dodania stron odsyłających do zaakceptowania, więc rozwiązania polegające na dodawaniu odsyłających nie są obecnie możliwe.
Moja strona logowania:
Dlaczego otrzymujemy ten błąd? Jak możemy to naprawić?
źródło
Google Maps JavaScript API error: RefererNotAllowedMapError
nawet po czekaniu. Potem spróbowałemMaps JavaScript API
i powtarzało sięRefererNotAllowedMapError
, próbowałem odświeżyć stronę i w końcu zaczęło działać po 2 minutach i 40 sekundach. Więc uważaj, do diabła. Ale BEZ niczego DZIAŁA dla mnie i działaMaps JavaScript API
tylko. Musisz tylko dużo czekać.Odpowiedzi:
Wiem, że to stare pytanie, które ma już kilka odpowiedzi, ale miałem ten sam problem i dla mnie problem polegał na tym, że poszedłem za przykładem podanym na console.developers.google.com i wprowadziłem moje domeny w formacie
*.domain.tld/*
. To nie działa w ogóle, a ja próbowałem dodając wszystkie rodzaje wariacji na to jakdomain.tld
,domain.tld/*
,*.domain.tld
itd.Rozwiązaniem dla mnie było również dodanie właściwego protokołu ;
http://domain.tld/*
jest jedynym, którego potrzebuję, aby działał w mojej witrynie. Myślę, że będę musiał dodać,https://domain.tld/*
jeśli mam przełączyć się na HTTPS.Aktualizacja: Google w końcu zaktualizowało symbol zastępczy, aby uwzględnić
http
teraz:źródło
http://www.---.com/*
example.com/*
w ustawieniach pole i działa odhttps://example.com/map
Chodź, Google, jesteście mądrzejsi, niż pozwala na to strona poświadczeń API. (Wiem, bo mam tam dwóch synów).
Lista „odsyłaczy” jest znacznie trudniejsza, niż na to pozwala. (Oczywiście powinno być bardziej wyrozumiałe.) Oto kilka zasad, których odkrycie zajęło mi wiele godzin :
*
jako zamiennika wydaje się działać tak, jakby to ciąg porównania.Prawdopodobnie istnieją inne zasady, ale jest to żmudna gra w zgadywanie.
źródło
http://my.site.com/*
) lub w subdomenie (http://*.site.com
). We WSZYSTKICH innych przypadkach to nie działa(https://www.my-site.com/*)
, również rozwiązało problem.#
) ma specjalne znaczenie w adresach URL. Zobacz<a name=...>
. Czy miałeś na myśliiconic://1234/foo
?Zgodnie z dokumentacją „RefererNotAllowedMapError” oznacza
Mam interfejs Google Maps Embed API skonfigurowany do użytku osobistego / służbowego i jak dotąd nie wskazałem żadnych odsyłaczy HTTP. Nie rejestruję żadnych błędów. Twoje ustawienia muszą powodować, że Google uważa, że odwiedzany adres URL jest niezarejestrowany lub niedozwolony.
źródło
Przypomnij tylko, że jeśli tylko to zmienisz, może minąć do 5 minut, zanim ustawienia zaczną obowiązywać.
źródło
Wypróbowałem wiele odmian strony odsyłającej i czekałem 5 minut, aż zdałem sobie sprawę, że przykład wypełniony przez Google w polu formularza jest błędny. Oni pokazują:
Jednak działa to tylko wtedy, gdy masz nazwę swojej domeny
subdomain.
lubwww.
przed nią. Następujące rzeczy zadziałały dla mnie natychmiast (pomijając wiodący okres z przykładu Google):źródło
hackexample.com
i używać twojego apiZgodnie z dokumentami Google stało się tak, ponieważ
url
w którym używasz interfejsu API Map Google, jest tonot registered
w formacielist of allowed referrers
EDYTOWAĆ :
Z Dokumentów Google
Skonfiguruj
http://testdomain.com
domenę, wtedyhttp://www.testdomain.com
zaczniesz pracę.źródło
Sprawdź również, czy masz włączony poprawny APIS.
Wypróbowałem wszystkie powyższe, gwiazdki, domeny tlds, ukośniki w przód, ukośniki odwrotne i wszystko, nawet na końcu wpisałem tylko jeden adres URL jako ostatnią nadzieję.
To wszystko nie zadziałało i w końcu zdałem sobie sprawę, że Google wymaga również określenia teraz, którego API chcesz użyć (patrz zrzut ekranu)
Nie miałem włączonych tych, których potrzebowałem (dla mnie był to interfejs API JavaScript Map Google)
Po włączeniu wszystko działało dobrze, używając:
http://www.example.com/ *
Mam nadzieję, że to komuś pomoże! :)
źródło
Symbole wieloznaczne (gwiazdki) NIE SĄ dozwolone w części subdomeny.
Zapomnij o tym, co Google mówi o symbolu zastępczym, nie jest to dozwolone.
źródło
sc.maindomain.com/*
Odkryłem, że nawet twoje
HTTP Referreres
są wystarczająco ważne, zły zestawAPI Restrictions
przyczynGoogle Maps JavaScript API error: RefererNotAllowedMapError
.Na przykład:
http://localhost/*
doApplication Restrictions / HTTP Referrences
Maps Embed API
zamiastMaps Javascript API
RefererNotAllowedMapError
źródło
Istnieje wiele domniemanych rozwiązań na przestrzeni kilku lat, a niektóre już nie działają, a inne nigdy, dlatego moje aktualne wyniki działają pod koniec lipca 2018 r.
Ustawiać:
Interfejs API JavaScript Map Google musi działać poprawnie z…
example.com
iexample.net
user22656.example.com
itp.http://www.example.com/
ihttps://example.net/
Rozwiązanie:
<https (or) http>://*.example.com/*
.*.
nazwą hosta).RefererNotAllowedMapError
błąd nadal się pojawia przy odpowiedniej konfiguracji (i po odczekaniu wystarczająco dużo czasu). Usunąłem klucz uwierzytelniający, powtórzyłem żądanie (teraz otrzymujęInvalidKeyMapError
), utworzyłem nowe poświadczenia (używając dokładnie tej samej konfiguracji) i od tamtej pory działało.(Jako tekst :)
źródło
Akceptuj żądania od tych stron odsyłających HTTP (witryn internetowych)
Wpisz ścieżkę do katalogu hosta lokalnego
źródło
Wystąpił ten sam błąd:
Ten link zawiera informacje o tym, jak skonfigurować ograniczenia klucza API: https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions
W moim przypadku problem polegał na tym, że korzystałem z tego ograniczenia:
Oznacza to, że będą działać adresy URL, takie jak https://www.example.net lub https://m.example.net lub https://www.example.net/San-salvador/ . Jednakże, adresy takie jak https://example.net lub https://example.net lub https://example.net/San-salvador/ nie będzie działać. Po prostu musiałem dodać drugą stronę odsyłającą:
To rozwiązało problem.
źródło
Dodałem 2 domeny internetowe, ustawiłem „*” w subdomenie nie działa, ale dla moich witryn zostały opracowane określone subdomeny „WWW” i inne niż subdomena przy użyciu tego samego klucza Google Map API.
nie używaj „*” w subdomenie
Mam nadzieję, że to pomoże.
źródło
pokazujesz zrzut ekranu strony poświadczeń API, ale musisz kliknąć „Klucz przeglądarki 1” i przejść stamtąd, aby dodać strony odsyłające.
źródło
Dla głębiej zagnieżdżonych stron
Jeśli masz projekt w folderze, na przykład lub zagnieżdżone strony
http://yourdomain.com/your-folder/your-page
możesz to wprowadzićhttp://yourdomain.com/*/*
Ważna część jest
/*/*/*
jak daleko musisz się posunąćWygląda na to, że
*
nie będą pasować/
ani nie wejdą w głębsze ścieżki.Zapewni to pełny dostęp do domeny, chyba że masz głębsze zagnieżdżenie.
źródło
Żadna z tych poprawek nie działała, dopóki nie dowiedziałem się, że
RefererNotAllowedMapError
może to być spowodowane brakiem połączenia konta rozliczeniowego z projektem. Więc pamiętaj, aby aktywować bezpłatny okres próbny lub cokolwiek innego.źródło
Że Twoje rozliczenia są włączone
Twoja witryna została dodana do Google Console
Twoja witryna została dodana do stron odsyłających w Twojej aplikacji.
(zrób symbol wieloznaczny dla www i braku www)
http://www.example.com/ * i http://example.com/ *
Włączone są mapy Javascript i używasz poprawnych poświadczeń
Witryna została dodana do Twojego DNS, aby włączyć konsolę Google powyżej.
Uśmiechnij się, gdy to zadziała!
źródło
APIs & Services > Credentials > (your key) > Application restrictions > HTTP Referrers
To kolejny sh1tty produkt Google ze straszną implementacją.
Problem, który znalazłem w tym przypadku, polega na tym, że jeśli ograniczysz klucz API według adresu IP, to nie zadziała ... ALE Google jest dalekie od wyjaśnienia tej kwestii ... Dopiero po rozwiązaniu problemu i zbadaniu znalazłem:
https://developers.google.com/maps/documentation/javascript/error-messages
FFS Google ... Dość ważna informacja, którą dobrze byłoby wyjaśnić podczas konfiguracji ...
źródło
http://www.example.com/ * zadziałał dla mnie po wielu dniach prób.
źródło
Moja praca wreszcie działa, korzystając z tej wskazówki od Google: ( https://support.google.com/webmasters/answer/35179 )
Oto nasze definicje domeny i witryny. Te definicje są specyficzne dla weryfikacji w Search Console:
źródło
Starałem się, aby to również działało, ale oto kilka wskazówek:
http
nphttp://example.com/*
Po rozwiązaniu tego wszystkiego mapy były wyświetlane zgodnie z oczekiwaniami.
źródło
Próbowałem użyć interfejsu Places API (autouzupełnianie) i musiałem również włączyć interfejs API Maps Javascript z poziomu Google Cloud Console, zanim interfejs Places API zaczął działać.
źródło
Sprawdź swoją deklarację na miejscu. Aby załadować Google Maps JavaScript API, użyj tagu skryptu, takiego jak ten
Używam tej deklaracji na mojej stronie Wordpress w pliku function.php
Ustawiłem klucz API na ten format i działa dobrze
ta deklaracja nie działa
źródło
Usunięcie ograniczeń (do Brak) działało dla mnie.
źródło
Z mojego doświadczenia
działało dobrze, ale na końcu wymagany jest https / *
źródło
Konsola JavaScript przeglądarki Chrome zasugerowała, żebym zadeklarował cały adres strony na mojej liście stron odsyłających HTTP, w tym przypadku http://mywebsite.com/map.htm Mimo że dokładny adres to http://www.mywebsite.com/map.htm - Miałem już style symboli wieloznacznych wymienione zgodnie z sugestiami innych, ale był to jedyny sposób, w jaki to zadziałało.
źródło
To zadziałało dla mnie. Istnieją 2 główne kategorie ograniczeń w ustawieniach kluczy interfejsu API:
Application restrictions
API restrictions
Ograniczenia aplikacji:
Ograniczenia API:
Sprawdź swój skrypt:
Problem może również powstać z powodu nieprawidłowego podania klucza w tagu skryptu. Powinien wyglądać mniej więcej tak:
źródło