Подтвердить что ты не робот

API JavaScript для Google Maps RefererNotAllowedMapError

Мы пытаемся разработать приложение геозамены для одного из наших клиентов и сначала хотим протестировать его в своем домене.

Мы подписали контракт на JavaScript API Карт Google, и у нас есть действующий ключ браузера, и наш домен www.grupocamaleon.com получил разрешение на использование этого ключа.

Но мы не можем сделать даже самый простой пример для запуска без ошибок.

У нас в домене и с нашим ключом есть следующая демонстрация:

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

Но это не работает, и консоль Firebug говорит:

"Ошибка API Карт Google: ошибка API Карт Google: RefererNotAllowedMapError (ссылка на документацию Google на RefererNotAllowedMapError) URL вашего сайта для авторизации: (1)"

На моей странице с учетными данными отсутствует возможность добавления рефереров для принятия, поэтому решения, включающие добавление рефереров, сейчас невозможны.

Моя учетная страница:

enter image description here

Почему мы получаем эту ошибку? Как мы можем это исправить?

4b9b3361

Ответ 1

Я знаю, что это старый вопрос, на который уже есть несколько ответов, но у меня была такая же проблема, и для меня проблема заключалась в том, что я последовал примеру, представленному на console.developers.google.com, и ввел свои домены в формате *.domain.tld/*. Это не сработало вообще, и я попытался добавить в него все виды вариаций, например domain.tld, domain.tld/*, *.domain.tld и т.д.

Что решило это для меня, так это добавление фактического протокола; http://domain.tld/* - единственное, что мне нужно для работы на моем сайте. Я думаю, мне нужно будет добавить https://domain.tld/* если я должен был переключиться на HTTPS.

Обновление: Google наконец-то обновил местозаполнитель, http теперь http:

Google Maps API referrer input field

Ответ 2

Заходите в Google, вы, ребята, умнее, чем позволяет страница API Credential. (Я знаю, потому что у меня там работают два сына.)

Список "рефереров" гораздо более разборчив, чем позволяет. (Конечно, это должно быть более прощающим.) Вот некоторые правила, которые заняли у меня часы, чтобы обнаружить:

  • Порядок в списке важен. Перемещение вашего URL вверх в списке может заставить его работать.
  • префикс "http://" обязателен.
  • Это нужно даже "localhost": " http://localhost/foo/bar.html "
  • Трейлинг * как подстановочный знак, похоже, работает так, как будто это сравнение строк.
  • Даже с " http://localhost/foo/bar.html ", " http://localhost/foo/bar.html? Arg = 1 " не будет работать. (Поможет ли подстановочный знак?)
  • Для обоих prod dev есть (как минимум) две строки: " http://localhost/foo/bar.html " и " http://my.site.com/foo/bar.html "
  • Номер порта (8085 × 4000?) Не требуется.

Возможно, есть и другие правила, но это утомительная игра в догадки.

Ответ 3

Согласно документации, "RefererNotAllowedMapError" означает

Текущий URL-адрес, загружающий API JavaScript Карт Google, не был добавлен в список разрешенных источников. Проверьте реферер настройки вашего ключа API на консоли Google Developers.

У меня есть API Google Maps Embed, настроенный для моего личного/рабочего использования, и до сих пор не указывал никаких HTTP-рефереров. Я не регистрирую ошибок. Ваши настройки должны заставить Google думать, что URL-адрес, который вы посещаете, не зарегистрирован или не разрешен.

введите описание изображения здесь

Ответ 4

Я пробовал много вариантов реферера и ожидал 5 минут, пока не понял, что пример заполнения Google в поле формы ошибочен. Они показывают:

*.example.com/*

Однако это работает только если у вас есть subdomain. или www. перед вашим доменным именем. Следующие мгновенно работали для меня (исключая примерный пример из примера Google):

*example.com/*

Ответ 5

Просто напомните, что если вы просто измените его, для того, чтобы настройки вступили в силу, может потребоваться до 5 минут.

Ответ 6

Убедитесь, что у вас включен правильный APIS.

Я перепробовал все вышеперечисленное, звездочки, доменные имена, косые черты, обратные косые черты и все, даже в конце концов, вводя только один URL в качестве последней надежды.

Все это не сработало, и, наконец, я понял, что Google также требует, чтобы вы указали, какой API вы хотите использовать (см. Скриншот)

enter image description here

У меня не было тех, которые мне нужно было включить (для меня это был JavaScript API Карт)

Как только я включил его, все работало нормально, используя:

http://www.example.com/ *

Я надеюсь, что это помогает кому-то! :)

Ответ 7

Согласно документации Google, это произошло потому, что url по которому вы используете API Карт Google, not registered в list of allowed referrers

РЕДАКТИРОВАТЬ:

Из Google Документов

Все субдомены указанного домена также авторизованы.

Если http://example.com авторизован, то http://www.example.com также авторизован. Обратное неверно: если http://www.example.com авторизован, http://example.com не обязательно авторизован

Поэтому, пожалуйста, настройте домен http://testdomain.com, тогда ваш http://www.testdomain.com начнет работать.

Ответ 8

Я обнаружил, что даже ваши HTTP Referreres достаточно действительны, неправильный набор API Restrictions вызывает Google Maps JavaScript API error: RefererNotAllowedMapError.

Например:

  • Вы используете Javascript API для ключа.
  • Добавьте http://localhost/* в Application Restrictions/HTTP Referrences
  • Выберите Maps Embed API вместо Maps Javascript API
  • Это вызывает RefererNotAllowedMapError

Ответ 9

В течение нескольких лет существует множество предполагаемых решений, и некоторые из них больше не работают, а некоторые так и не работали, поэтому моя последняя версия работает на конец июля 2018 года.

Установка:

JavaScript API Google Карт должен правильно работать с…

  • несколько доменов, вызывающих API: example.com и example.net
  • произвольные субдомены: user22656.example.com и т.д.
  • как безопасные, так и стандартные протоколы HTTP: http://www.example.com/ и https://example.net/
  • структура с неопределенным путем (т.е. большое количество различных путей URL)

Решение:

  • На самом деле, используя шаблон из заполнителя: <https (or) http>://*.example.com/*.
  • Не опуская протокол, но добавив две записи на домен (по одной на протокол).
  • Дополнительная запись для поддоменов (с *. в начале имени хоста).
  • У меня было ощущение, что ошибка RefererNotAllowedMapError по-прежнему появляется при использовании правильной конфигурации (и достаточно времени ожидания). Я удалил ключ учетных данных, повторил запрос (теперь получая InvalidKeyMapError), создал новые учетные данные (используя точно такую же настройку), и с тех пор он работал.
  • Добавление простого протокола и домена, похоже, не включало субдомены.
  • Для одного из доменов рабочая конфигурация выглядит следующим образом:

Screenshot from Google API configuration

(Как текст :)

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

Ответ 10

введите описание изображения здесь

Принять запросы от этих HTTP-рефереров (веб-сайтов)

Запись пути каталога localhost

Ответ 11

вы покажете скриншот своей страницы учетных данных api, но вам нужно нажать "Браузерный ключ 1" и перейти оттуда, чтобы добавить рефереров.

Ответ 12

Для более глубоких вложенных страниц

Если у вас есть проект в папке например или вложенных страницах

http://yourdomain.com/your-folder/your-page вы можете ввести это в

http://yourdomain.com/*/*

Важная часть /*/*/* зависит от того, как далеко вы должны идти

Кажется, что * не будет соответствовать / или углубиться в пути.

Это даст вам полный доступ к домену, ну, если у вас нет более глубокого гнездования, чем это.

Ответ 13

Я испытал ту же ошибку:

enter image description here

Эта ссылка рассказывает о том, как установить ограничения ключа API: https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions

В моем случае проблема заключалась в том, что я использовал это ограничение:

HTTP-рефереры (веб-сайты) Принимать запросы от этих HTTP-рефереров (веб-сайты) (необязательно). Используйте * для подстановочных знаков. Если вы оставите это поле пустым, запросы будут приниматься от любого реферера. Обязательно добавьте рефереры перед использованием этого ключа в производстве. https://*.example.net/*

Это означает, что URL-адреса, такие как https://www.example.net или https://m.example.net или https://www.example.net/San-salvador/ будут работать. Однако URL-адреса, такие как https://example.net или https://example.net или https://example.net/San-salvador/, не будут работать. Мне просто нужно было добавить второго реферера:

https://example.net/*

Это решило проблему для меня.

Ответ 14

  1. Что ваш биллинг включен

  2. Что ваш сайт был добавлен в консоль Google

  3. То, что ваш сайт добавлен к ссылкам в вашем приложении.

  4. (сделать подстановочный знак для www и ни одного www)

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

  1. Что Javascript Maps включен, и вы используете правильные учетные данные

  2. Что веб-сайт был добавлен в ваш DNS для включения вашей консоли Google выше.

  3. Улыбнись после того, как это сработает!

Ответ 15

Наконец-то я начал работать, используя этот совет от Google: (https://support.google.com/webmasters/answer/35179)

Вот наши определения домена и сайта. Эти определения относятся к проверке Консоли поиска:

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

Ответ 16

Я добавляю 2 домена веб-сайтов, набор "*" в субдомене не работает, но для моих веб-сайтов использовался отдельный субдомен "WWW" и не субдомен, использующие один и тот же ключ API Google Map.

не используйте "*" в поддомене

Надеюсь, это поможет.

Ответ 17

Подстановочные знаки (звездочки) НЕ допускаются на поддоменах.

  • НЕПРАВИЛЬНО: *.example.com/*
  • ПРАВО: example.com/*

Забудьте, что Google говорит о заполнителе, это не разрешено.

Ответ 18

Это еще один дрянной продукт Google с ужасной реализацией.

Проблема, с которой я столкнулся, заключается в том, что если вы ограничите ключ API по IP-адресу, он не будет работать... НО это далеко от Google, чтобы прояснить этот момент... Так было до устранения неполадок и исследований, которые я обнаружил:

Ключи API с ограничением IP-адресов могут использоваться только с веб сервисы, которые предназначены для использования со стороны сервера (например, API геокодирования и другие API веб-сервисов). Большинство из этих веб-сервисов иметь эквивалентные сервисы в JavaScript API Карт (например, см. сервис геокодирования). Чтобы использовать клиентскую часть Maps JavaScript API услуги, вам нужно будет создать отдельный ключ API, который может быть Защищено с помощью ограничения HTTP-ссылок (см. ограничение API). ключ).

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

FFS Google... Довольно важная часть информации, которую было бы хорошо уточнить при настройке...

Ответ 19

Я изо всех сил пытался сделать эту работу, но вот несколько советов:

  • URL-адреса, установленные как источники ссылок, включают в себя http, например, http://example.com/*
  • JavaScript API Карт Google был включен
  • Для этого аккаунта был настроен платеж

Как только все вышеперечисленное было решено, карты отображались как ожидалось.

Ответ 20

http://www.example.com/ * работал у меня после нескольких дней и дней попыток.

Ответ 21

Ни одно из этих исправлений не работало на меня, пока я не узнал, что RefererNotAllowedMapError может быть вызвано отсутствием учетной записи, связанной с проектом. Поэтому обязательно активируйте бесплатную пробную версию или что-то еще.

Ответ 22

Я пытался использовать Places API (автозаполнение), и мне также пришлось включить Maps Javascript API из Google Cloud Console, прежде чем API Places будет работать.

Ответ 23

Проверьте свое разделение на сайте. Чтобы загрузить API JavaScript Карт Google, используйте тег script, как этот

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

Я использую это объявление на моем сайте Wordpress в файле functions.php

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

Я установил ключ API в этом формате, и он отлично работает

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

это объявление не работает

*.my-domain-name.com/*

Ответ 24

Удаление ограничений (на None) работало для меня.

Ответ 25

По моему опыту

http://www.example.com

работал нормально Но, https требуется /* в конце

Ответ 26

Консоль Chrome Javascript предложила объявить полный адрес страницы в моем списке ссылок HTTP, в данном случае http://mywebsite.com/map.htm Даже если точный адрес http://www.mywebsite.com/map.htm - У меня уже были перечислены стили подстановочных знаков, как это было предложено другими, но это был единственный способ, которым это сработало бы для меня.

Ответ 27

Это сработало для меня. В настройках API-ключа есть две основные категории ограничений:

  • Application restrictions
  • API restrictions

Ограничения по применению:

Внизу в разделе Referrer добавьте URL своего сайта " http://www.grupocamaleon.com/boceto/aerial-simple.html ". В правой части раздела приведены примеры правил, основанные на различных требованиях.

Application restrictions

Ограничения API:

В соответствии с ограничениями API вы должны явно выбрать 'API JavaScript Javascript' из раскрывающегося списка, поскольку наш уникальный ключ будет использоваться только для вызова API карт Google (вероятно) и сохранить его, как вы можете видеть ниже. щелчок. Я надеюсь, что это работает для вас..... работал для меня

enter image description here

Проверьте свой скрипт:

Также проблема может возникнуть из-за неправильной подачи ключа внутри тега script. Это должно быть что-то вроде:

  <script async defer src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&callback=initMap"
  type="text/javascript"></script>