Ключ 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, он тоже не работает?

adam78
источник
Возможный дубликат раздела Как установить ограничение ключа Google API - HTTP-рефереры
viktorianer

Ответы:

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. Используйте свой ключ в своем проекте
mirzaei.sajad
источник
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.

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

user1556937
источник
5

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

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

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

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

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

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

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

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

Патрик
источник
1

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

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

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

Abielita
источник
2
неработающая ссылка не работает
Рафаэль Херскович
1
@Dementic console.developers.google.com/flows/…
А. Э. Грей,
@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 на этой странице, но продолжайте использовать свой ключ.

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

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

GMC
источник
0

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

Алаа ма
источник
0

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

andf
источник