Цей 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
Dimag Kharab

Ключ API вже доступний
sanket

Перевірте відповідь Майка, це спрацювало для мене
Шераз Ахмад Хілджі

Прийміть відповідь 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-адреси.

Останнє, замість того, щоб замість сенсора = true посередині URL-адреси, ви можете додати його наприкінці так:

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

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

EDIT

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

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

Сподіваюся, ця відповідь допоможе вам та іншим глядачам. Щасти .. :)


8
Дуже важливо 4) Введіть свою IP-адресу в поле, і якщо у вас більше ip-адрес, ви можете просто додати їх у кожному окремому рядку. ПРИМІТКА: Введіть IP-адресу лише тоді, коли ви хочете використовувати її для своїх цілей тестування. В іншому випадку залиште розділ IP-адреси порожнім.
Sheraz Ahmad Khilji

6
Це правильно .. вказати IP-адресу / адреси лише для тестування. В іншому випадку залиште це поле порожнім. Оскільки ви обмежуєте програму або клавішу api працювати лише на певних пристроях / програмі.
mike20132013

1
@johnshumon Так, я думаю .. не оновлював відповідь протягом століть. Можуть бути якісь нові зміни API.
mike20132013

1
Можливо, ми також хочемо переконатися, що веб-служба API Google Places також включає 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 також перевіряє джерело вхідного запиту, переглядаючи REFERRERабо IP-адресу. Щоб запустити приклад у curl, створіть нову Server Keyв консолі API Google . Створюючи його, ви повинні вказати IP-адресу сервера. У цьому випадку це буде ваша локальна IP-адреса . Після того, як ви створили Server Keyсвою IP-адресу та додали її в білий список, ви зможете використовувати новий ключ API у curl.

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


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

Боролися з цим годинами, перш ніж виявили, що новий "проект" тепер повинен бути пов'язаний із хмарним платіжним рахунком Google, щоб API Google перестав видавати ці різні загальні помилки. Порогове значення можна встановити на $ 0, тому з вас ніколи не стягуватиметься плата, якщо використання перевищує дозволену квоту.
Sparky

6

Наразі API Google Places не підтримує ключі Android або iOS, генеровані з консолі API Google. Наразі підтримуються лише клавіші сервера та браузера.


1
Цікаво ... так як же створити ключ для використання в додатках для Android або iOS?
Грем

Клавіші вашого браузера працюватимуть в Android та iOS. Отримайте ключі браузера в консолі API Google
Nazrul Islam

Вони не обходяться без додаткових зусиль. Я щойно зрозумів це після невдалого вчорашнього дня; є додатковий крок для додатків: 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. Отже, якщо ви цього ще не зробили, як тільки ви успішно отримаєте відповідь, він скаже, що ви повинні це зробити першим (у нього є безкоштовний стартовий пакет).


2

Ви створюєте ключ без посилання, не вводячи адресу реферала


не могли б ви
пояснити

2
Створюючи ключ, у якому є місце для додавання адреси реферала, переконайтесь, що ви щось там додали. якщо додано Очистити це
DeadlyDroid

2

API Google Place вимагає, щоб під час здійснення виклику API був включений заголовок HTTP рефератора.

Включіть заголовок HTTP "Referer: yourdomain.com", і це має вирішити проблеми з відповідями.


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

Не могли б ви надати фрагмент
Сагар Деванга

Ось, що я зробив, і це спрацювало чудово: var options = {url: url, headers: {Referer: ' xxx.herokuapp.com '}}; request.get (параметри, функції (...
Florida G.

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

Аутентифікація, квоти, ціни та політики Аутентифікація Щоб використовувати API Directions, спочатку потрібно ввімкнути API та отримати відповідні облікові дані автентифікації. Для отримання додаткової інформації див. Початок роботи з Google Maps Platform.

Квотування та ціноутворення Перегляньте сторінку використання та виставлення рахунків, щоб отримати докладнішу інформацію про квоти та ціни, встановлені для API напрямків.

Політика Використання API Directions має відповідати політиці API.

більше знати: відвідайте: --- https://developers.google.com/maps/documentation/directions/start?hl=uk


-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.