2017-02-10 16 views
5

Я пытаюсь запрограммировать геокодирование. Я создал ключ API, но когда я добавляю его в код своего сайта, я ничего не получаю, однако, когда я не использую API, все работает хорошо. Когда я посылаю:API-ключи API-интерфейсы API-интерфейса браузера не могут иметь ограничений для ссылок при использовании с этим API

https://maps.googleapis.com/maps/api/geocode/json?address=".$adres."&key=KLUCZ_XXX 

я получаю ответ:

Browser API keys cannot have referer restrictions when used with this API. 

Если я использую:

https://maps.googleapis.com/maps/api/geocode/json?address=".$adres" 

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

Ключевое ограничение: рефералы HTTP (Web) - установить в домен, из которого запрашивается запрос. Интерфейс API Google Maps Geocoding включен.

Должен ли быть активирован ключ API еще в другом месте?

ответ

12

Похоже, что вы можете использовать серверный сервер API. Сегодня я столкнулся с этим вопросом. Поскольку вы поместили ограничение реферера на свой ключ API, оно будет ограничено выполнением в браузере API-интерфейсов веб-сервисов, включая API геокодирования. Это не сработало для меня, даже если вручную настроить реферер в заголовках запросов. Вы можете найти другие интерфейсы API веб-служб на этой странице: https://developers.google.com/maps/web-services/

Важно: Если вы используете какой-либо из интерфейсов веб-служб с помощью ключа API, который имеет Referer restictions, ваши запросы будут завершаться с сообщением об ошибке: " Ключи API не могут иметь ограничений для ссылок при использовании с этим API. " Вы должны переключиться на использование ограничения сервера.

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

Смотрите этот раздел в API Карт FAQ на переключение типа ключа на сервер ограниченного ключ: https://developers.google.com/maps/faq#switch-key-type

В качестве альтернативы, вы можете продолжать использовать ключ браузера и геокодирование на стороне клиента (JavaScript), а затем возвращает результат бэкэнд через ajax.