Ключ API Googlemaps для локального хоста


91

Как заставить API-интерфейс googlemaps работать на локальном хосте?

Я создал ключ API и в разделе рефералов добавляю следующее:

Accept requests from these HTTP referrers (websites) (Optional)

Use asterisks for wildcards. If you leave this blank, requests will be 
accepted from any referrer. Be sure to add referrers before using this key 
in production. 

localhost

Это не работает, и если я исключу ключ api, он тоже не работает?


Ответы:


130
  1. Перейдите по этому адресу: https://console.developers.google.com/apis
  2. Создайте ключ API для вашего проекта
  3. Щелкните "Библиотека"
  4. Нажмите на любой API, который хотите
  5. Нажмите "Включить" (вверху справа).
  6. Нажмите «Учетные данные»> «Изменить ключ».
  7. В разделе «Ограничение ключа» выберите «HTTP-рефереры (веб-сайты)».
  8. Введите адрес своего веб-сайта (или «localhost», «127.0.0.1», «localhost: port» и т. Д. Для локальных тестов) в текстовое поле и нажмите, ENTERчтобы добавить его в список.
  9. Используйте свой ключ в своем проекте

8
Это то, что я сделал, но мне интересно: означает ли это, что ЛЮБОЙ, работающий локально (localhost / 127.0.0.1), может использовать мой КЛЮЧ API (и, возможно, вывести для меня затраты после того, как новые цены на 2018-06-11 вступят в силу ?)
tmanolatos 04

31
@tmanolatos Да, это то, что это значит. Не рекомендуется давать вашему производственному ключу права localhost, поскольку любой может использовать ваш ключ при локальной работе. Вместо этого вы должны поддерживать два ключа. Один для производства, который может видеть кто угодно и, следовательно, должен быть разрешен только в вашем домене. Один для разработки, который следует рассматривать как учетные данные (не делиться ими) и разрешает доступ с localhost.
the_cheff 06

2
@tmanolatos Да, но вы должны создать два ключа, один для тестирования приложения, а другой для основного приложения,
mirzaei.sajad

Я получаю этот ответ после выполнения описанных выше действий: {"error_message": "Ключи API с ограничениями ссылки не могут использоваться с этим API.", "Results": [], "status": "REQUEST_DENIED"} Вот URL , где DEV_KEY заменяется моим ключом api: maps.googleapis.com/maps/api/geocode/…
rmutalik

Он возвращает правильный JSON, когда я использую свой ключ API PROD_KEY.
rmutalik

10

Вы можете пойти по этому пути. По крайней мере, у меня работает:

на странице учетных данных:

  1. Выберите вариант с IP-адресом (вариант № 3).

  2. Введите свой IP-адрес от вашего провайдера. Если вы этого не сделаете, найдите свой IP-адрес, используя эту ссылку: https://www.google.com/search?q=my+ip.

  3. Сохрани это.

  4. Измените ссылку на карту Google следующим образом между тегами скрипта:

    https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzxxxxxxxx "

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

Теперь ваша карта Google должна работать.


9

Если вы работаете с localhost, создайте отдельный ключ API для своей разработки, а затем снимите ограничения для этого ключа, чтобы ваш localhost мог его использовать. Помните, что нельзя использовать этот ключ на производстве, чтобы не раскрывать свой ключ охотникам в Интернете.

У меня была такая же проблема, и все попытки заставить ограничения работать в моей среде localhost не увенчались успехом, пока я не создал отдельный apikey специально для разработки, а затем снял его ограничения. Однако я не использую этот ключ в производственной среде, и как только закончу разработку, я немедленно удалю ключ API.

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


5

Думаю, я немного опаздываю на вечеринку, и хотя я согласен с тем, что создание отдельного ключа для разработки (localhost) и продукта можно сделать и то, и другое с помощью всего одного ключа.

Когда вы используете Ограничения приложений -> HTTP-ссылки -> Ограничения веб-сайтов, вы можете вводить URL-адреса с подстановочными знаками.

Однако используя подстановочный знак, например .localhost / или .localhost: {порт}. (когда уже есть .yourwebsite.com / * ), похоже, не работает.

Простое добавление одного * действительно работает, но в основном это дает вам неограниченный ключ, чего вы тоже не хотите.

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

http: // localhost {порт} /
http: // localhost : {порт} / что-то еще / здесь

Заставляет карты Google работать как локально, так и на сайте www.yourwebsite.com, используя один и тот же ключ API.

В любом случае, когда есть 2 отдельных ключа, я бы посоветовал это сделать.


1

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

Проверьте эти связанные темы SO:

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


2
неработающая ссылка не работает
Рафаэль Херскович


@AEGrey - не для меня, для будущих пользователей.
Рафаэль Хершович

1

Вы должны проверить конкретную ошибку в консоли javascript (например, Ctrl+ Shift+ Kв Firefox для Windows).

Согласно Стивену Глибе (2016) , существует четыре распространенных случая этой проблемы. Если можно резюмировать это так:

  1. MissingKeyMapError >> Получить ключ API Карт Google (но также рассмотрите альтернативу № 2)
  2. RefererNotAllowedMapError >> Зарегистрируйте порт localhost: в панели управления разработчика Google .
  3. ApiNotActivatedMapError >> Включение API Карт Google на странице библиотеки API Google
  4. InvalidKeyMapError >> Добавьте свой ключ в свои скрипты / коды правильно

После внесения некоторых изменений в код очистите кеш браузера, если это необходимо.

Если есть другие ошибки, вы можете проверить страницу документации по кодам ошибок API Карт Google .


0

Там, где написано «Принимать запросы от этих HTTP-рефереров (веб-сайтов) (необязательно)», вам не нужно указывать какой-либо реферер в списке. Поэтому щелкните X рядом с localhost на этой странице, но продолжайте использовать свой ключ.

Затем он должен подействовать через несколько минут.

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


0

Набрав «мой IP» в поиске Google, я получил свой общедоступный IP-адрес и вставил его в IP-адрес (третий вариант). Меня устраивает.


0

Набрав «мой IP» в поиске Google, я получил свой общедоступный IP-адрес и вставил его в IP-адрес (третий вариант). Меня устраивает.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.