Как правильно установить учетные данные Google API и ограничения для геокодирования - PullRequest
0 голосов
/ 31 января 2019

мы используем API Карт Google на нашем веб-сайте для перекрестной проверки записей адресов пользователей.

Типичным вызовом будет: https://maps.googleapis.com/maps/api/geocode/json?key=XXXX&address=12-6 Daly St, Maryborough, VIC, Australia, 3465

Где XXXX - это, конечно, ключ, взятый из учетных данных.

Мы установили учетные данные в консоли разработчика.API JavaScript Карт, API геокодирования, API геолокации и другие включены.

Проблема, с которой мы сталкиваемся, заключается в том, что мы не можем ограничивать ключ ни «HTTP-ссылками (веб-сайтами)», ни «IP»адреса (веб-серверы, cron-задания и т. д.) ".В результате мы должны оставить «Ограничение приложения» на «none».

Как только мы ограничим этот ключ, возвращается ошибка:

With "HTTP referrers (web sites)", the error is:
"API keys with referer restrictions cannot be used with this API."

With "IP addresses (web servers, cron jobs, etc.)", the error is:
This IP, site or mobile application is not authorized to use this API key. Request received from IP address XXXXX

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

Кроме того, может быть еще одна причина для увеличения платыза последний месяц?

ОЖИДАЕМОЕ ПОВЕДЕНИЕ: API возвращает информацию JSON с широтой, долготой и т. д., которая работает, если мы не установили ограничения.

АКТУАЛЬНОЕ ПОВЕДЕНИЕ: при добавленииограничение, однако, JSON-ответ является ошибкой с сообщением, упомянутым выше.

UPDATE

Я звонил вышеупомянутый URL с Javascript через ajax, установив асинхронное значение false,Я изменяю вызов, следуя приведенному здесь описанию: https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple

Ограничения (HTTP-рефереры), похоже, работают нормально.

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

В моем коде есть следующее:

<script async defer src="https://maps.googleapis.com/maps/api/js?key=MY-KEY&callback=clf_init"></script>
<script>
var geocoder;
function clf_init() {
    geocoder = new google.maps.Geocoder();
}

function submit(){
    var address = document.getElementById('address').value;
    geocoder.geocode({ 'address': address }, function(results, status) 
    {
        console.log("STATUS: " +status);
        console.log("RESULT: " + JSON.stringify(results));
        if (status==='OK') {
            console.log("SUCCESS");
        }
        else {
            console.log("ERROR");
        } 
    });
}

Как уже упоминалось, если адрес правильный, я получаю "STATUS:«ОК», но если адрес неверный, я вообще не получаю никакого журнала, как если бы функция даже не выполнялась.Любая идея, почему это так и как я должен изменить код для обработки ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...