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


101

Я использую https://maps.googleapis.com/maps/api/geocode/json ? ссылка с ключом сервера и IP-адресом пользователя, чтобы найти широту и долготу любого адреса, когда я пытаюсь найти ошибку как

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

URL-адрес, к которому я пытаюсь получить доступ через PHP CURL:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX

Результат, который я получаю:

Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)

Есть ли что-нибудь, что мне нужно настроить. API геокодирования тоже включен.


вам нужно получить авторизованный ключ от Google и поместить его в api
Димаг Хараб

Ключ API уже доступен
прием

Проверьте ответ Майка, у меня это сработало
Шераз Ахмад Хилджи

Примите ответ mike20132013! Оно работает!
aveschini

Существует официальный документ по этой проблеме: chromium.org/Home/chromium-security/...
Gopal00005

Ответы:


150

У меня была такая же проблема, и я нашел это.

В URL-адресе в конце требуется ключ сервера, а не ключ api для приложения.

Итак, по сути, вы просто добавляете ключ сервера в конец URL-адреса следующим образом:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY

Теперь, чтобы получить ключ сервера, просто выполните следующие действия:

1) Перейдите в консоль разработчика https://code.google.com/apis/console/

2) В учетных данных в разделе «Доступ к общедоступному API» создайте новый ключ.

3) Выберите ключ сервера из опций.

4) Введите свой IP-адрес в поле, и если у вас есть другие IP-адреса, вы можете просто добавить их в каждой строке. ПРИМЕЧАНИЕ. Введите IP-адрес только в том случае, если вы хотите использовать его для целей тестирования. В противном случае оставьте поле IP-адреса пустым.

5) После того, как вы закончите, нажмите «Создать», и ваш новый ключ сервера будет сгенерирован, и вы сможете добавить этот ключ сервера к своему URL-адресу.

И последнее: вместо того, чтобы помещать sensor = true в середине URL-адреса, вы можете добавить его в конце следующим образом:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true

Это определенно решит проблему и просто не забудьте использовать ключ сервера для Places API.

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

Я считаю, что веб-адрес изменился за последние годы. Теперь вы можете получить доступ к консоли разработчика отсюда - https://console.developers.google.com/apis/dashboard

  • Перейдите в консоль разработчика - https://console.developers.google.com/ или воспользуйтесь ссылкой из подробностей, чтобы перейти непосредственно к панели управления API.
  • В консоли разработчика найдите ярлык на левой панели навигации.
  • Выбрать проект
  • Выберите учетные данные на левой панели навигации.
  • При необходимости вы можете создать тип учетных данных на верхней панели навигации .

Надеюсь, этот ответ поможет вам и другим зрителям. Удачи .. :)


8
Очень важно 4) Введите свой IP-адрес в поле, и если у вас есть другие IP-адреса, вы можете просто добавить их в каждой отдельной строке. ПРИМЕЧАНИЕ. Введите IP-адрес только в том случае, если вы хотите использовать его для целей тестирования. В противном случае оставьте поле IP-адреса пустым.
Шераз Ахмад Хилджи

6
Это правильно .. укажите IP-адрес / адреса только для целей тестирования. В противном случае оставьте поле пустым. Потому что вы ограничиваете приложение или ключ API для работы только на определенных устройствах / приложении.
mike20132013 03

1
@johnshumon Да, я думаю ... не обновлял ответ целую вечность. Возможно, появятся новые изменения API.
mike20132013

1
Возможно, вы захотите также убедиться, что веб-служба Google Places API также является включенным API
Джастин Уилсон,

1
Много часов боролся с этим, прежде чем обнаружил, что новый «проект» теперь должен быть связан с учетной записью облачного биллинга Google, чтобы API Google перестал выдавать эти различные общие ошибки. Порог может быть установлен на 0 долларов, поэтому с вас никогда не будет взиматься плата, если использование превышает допустимую квоту.
Sparky

15
  1. Выберите ключ
  2. Вкладка "Ограничение API"
  3. Выберите ключ API
  4. Сохранить
  5. Выберите «Ограничение приложения» -> «Нет».
  6. Сохранить

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

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

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

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


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

работал как шарм. Спасибо, пытался геокодировать. Я установил ограничения для приложений, как вы указали, и это сработало.
Рави

4
Ограничения: нет ничего опасного.
Денисс М.

9
Отключение безопасности - не решение!
Бартоломей

НЕ ОСТАВЛЯЙТЕ КЛЮЧ API БЕЗ ОГРАНИЧЕНИЙ! Теперь новый «проект» должен быть связан с платежной учетной записью, чтобы API Google перестал выдавать эти различные общие ошибки. Порог может быть установлен на 0 долларов, поэтому с вас никогда не будет взиматься плата, если использование превышает допустимую квоту.
Sparky

14

Помимо присвоенного вам ключа API, Google также проверяет источник входящего запроса, просматривая либо REFERRERIP-адрес, либо его. Чтобы запустить пример в curl, создайте новый Server Keyв консоли Google API . При его создании вы должны указать IP-адрес сервера. В этом случае это будет ваш локальный IP-адрес . После того, как вы создали Server Keyи занесли свой IP-адрес в белый список, вы сможете использовать новый ключ API в curl.

Я предполагаю, что вы, вероятно, создали свой ключ API как ключ, Browser Keyкоторый не требует, чтобы вы заносили свой IP-адрес в белый список, а вместо этого использует REFERRERтег заголовка HTTP для проверки. curl не отправляет этот тег по умолчанию, поэтому Google не смог проверить ваш запрос.


1+ Потребуется создать ключ API сервера для использования службы геокодирования Google. Также необходимо включить службу геокодирования карт Google из консоли API Google .. Спасибо !!
Sumit Munot

Много часов боролся с этим, прежде чем обнаружил, что новый «проект» теперь должен быть связан с учетной записью облачного биллинга Google, чтобы API Google перестал выдавать эти различные общие ошибки. Порог может быть установлен на 0 долларов, поэтому с вас никогда не будет взиматься плата, если использование превышает допустимую квоту.
Sparky

6

API Google Places в настоящее время не поддерживает ключи Android или iOS, созданные в консоли API Google. В настоящее время поддерживаются только ключи сервера и браузера.


1
Интересно ... так как же создать ключ для использования в приложениях для Android или iOS?
Грэм Перкс,

Клавиши вашего браузера будут работать в Android и iOS. Получите ключи браузера в консоли API Google
Назрул Ислам

Они не обходятся без дополнительных усилий. Я только что понял это после вчерашнего разочаровывающего дня; есть дополнительный шаг для приложений: stackoverflow.com/a/58136437/434004
Грэм Перкс,

3

Вы пытаетесь использовать КЛЮЧ API, который вы ограничили таким образом, чтобы это действие не разрешалось.

Согласно Google:

Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.

Итак, правильнее всего создать еще один КЛЮЧ API и выбрать правильные ограничения для этого вопроса. В вашем случае выберите «IP-адреса» (в разделе «Ограничения приложений») и используйте «ДОБАВИТЬ ЭЛЕМЕНТ», чтобы добавить свой IP-адрес сервера. Обратите внимание, что оставить пустой список не получится, и Google изменит ваши ограничения на «Нет».

Кроме того, не забудьте добавить соответствующие API в разделе «Ограничения API» (в вашем случае «API геокодирования»).

И последнее: Google блокирует использование этого API до тех пор, пока вы не свяжете свое приложение с учетной записью Google Cloud Billing. Поэтому, если вы еще этого не сделали, как только вы успешно получите ответ, он скажет, что вам нужно сделать это в первую очередь (у него есть бесплатный стартовый пакет).


2

Вы создаете ключ без реферала, не вводите адрес реферера


не могли бы вы уточнить
Сагар Деванга

2
При создании ключа у вас есть место для добавления адреса референта, пожалуйста, убедитесь, что вы что-то добавили туда. если добавлен Clear it
DeadlyDroid

2

Google Place API требует включения HTTP-заголовка referer при вызове API.

Включите HTTP-заголовок «Referer: yourdomain.com», и это должно исправить проблемы с ответом.


1
Хотя это может дать ответ на вопрос, всегда полезно добавить в ответ текст, объясняющий, что вы делаете. Прочтите, как написать хороший ответ . Кроме того, вы должны включить некоторый код.
Jørgen R

Не могли бы вы предоставить отрывок
Сагар Деванга

Вот что я сделал, и это сработало отлично: var options = {url: url, headers: {Referer: ' xxx.herokuapp.com '}}; request.get (options, function (...
Флорида Дж.

1

Также для данного проекта должен быть включен соответствующий API.

https://console.developers.google.com/apis/library?project=projectnameздесь


1

Для последней версии API мне кажется, что все наоборот.

При вызове URL-адреса https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>я получал следующую ошибку

Вы должны использовать ключ API для аутентификации каждого запроса к API платформы Google Maps. Для получения дополнительной информации посетите http://g.co/dev/maps-no-account

Как только я изменил порядок, https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>он работал нормально.

Обратите внимание, что полученное выше сообщение об ошибке было сообщением, которое я получил при прямом переходе по URL-адресу в браузере. Когда я вызвал API из программы, я получил ответ HTML, в основном со следующим сообщением:

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


Много часов боролся с этим, прежде чем обнаружил, что новый «проект» теперь должен быть связан с учетной записью облачного биллинга Google, чтобы API Google перестал выдавать эти различные общие ошибки. Порог может быть установлен на 0 долларов, поэтому с вас никогда не будет взиматься плата, если использование превышает допустимую квоту.
Sparky

0

Для приложений iOS или Android ключ требует предоставления дополнительных привилегий.

Перейдите в Консоль Google -> API и службы -> Библиотека. Коснитесь библиотеки Адресов для своей платформы, а затем коснитесь Включить.

См. Https://developers.google.com/maps/gmp-get-started#enable-api-sdk.


0

Аутентификация, квоты, цены и политики Аутентификация Для использования Directions API необходимо сначала включить API и получить соответствующие учетные данные для аутентификации. Для получения дополнительной информации см. Начало работы с платформой Google Maps.

Квоты и цены. Подробную информацию о квотах и ​​ценах, установленных для API Directions, можно найти на странице использования и выставления счетов.

Политики Использование API Directions должно соответствовать политикам API.

подробнее: посетите: --- https://developers.google.com/maps/documentation/directions/start?hl=en_US


-2
  url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY

добавить только в AppDelegate, например

            GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")

и удалите ключ в этом URL.

теперь url

https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving

-3

Отключите api направления и api геокодирования и снова включите.

он работает всего 5-10 секунд и затем автоматически отключается.

это означает, что у вас есть всего 5-10 секунд, чтобы проверить свое задание.

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