2015-04-10 9 views
22

Я разрабатываю в JavaScript/HTML/CSS приложение, использующее Карты Google. Я получаю следующее предупреждение диалоговое окно:Ошибка Google Map: InvalidKeyOrUnauthorizedURLMapError

«Эта страница не смогла отобразить элемент Google Maps Указанный ключ API Google недействителен или этот сайт не разрешается использовать Код ошибки:.. InvalidKeyOrUnauthorizedURLMapError»

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

Я зашел к Консоли разработчика Google и в разделе «Полномочия», которые «отредактированные позволили рефереры» быть mydomain.com/*

Я также зашел к Консоли разработчика Google в раздел API и включил 11 API Карт Google.

+0

Попробуйте добавить 'www.mydomain.com/*' в разрешенные источники. –

+0

Спасибо. Пробовал. Без изменений. –

+0

В консоли, когда появляется предупреждающее окно с указанным выше сообщением, я вижу это сообщение: «InvalidKeyOrUnauthorizedURLMapError: https://developers.google.com/maps/documentation/javascript/tutorial#api_key VM3230: 45», но когда я установите точку останова в VM3230, в следующий раз, когда появится предупреждение, ссылка будет на другой файл, такой как VM3278: 45, поэтому я не могу приостановить программу прямо, когда это произойдет, чтобы увидеть, где она находится в моей программе. –

ответ

22

После множества комбинаций ссылок, удаления и повторного создания учетных данных я понял, что я не включил «API JavaScript Карт Google». Какой позор. :)

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

+2

Впустую 3 часа на это. Большое спасибо. Это сработало. –

+1

Я пытался использовать веб-службу API-интерфейсов _Google Places, поэтому мне никогда не приходило в голову, что JavaScript-интерфейс JavaScript Google Maps также должен быть включен. – Zomby

+2

Ничего себе, боролся в течение недели, и в конце концов это была проблема. Они должны отправить более четкое сообщение об ошибке вместо 'InvlidKeyOrUnauthorizedURLMapError'. Спасибо Tuncay +1. –

8

После многого с этим вопросом я нашел 1 решение для меня. Это может помочь людям, которые ищут правильное и точное решение, но не комментарии, нисходящие и ссылки.
(карта не отображается в моем случае.)

Если предположим, что, ссылка на страницу, где вы загружаете карту является
http://example.com/abc/def/ghi/kpn.php

затем дают same(exactly the same) под Edit allowed references

Если вы попробуйте загрузить ту же страницу, используя:

www.example.com/abc/def/ghi/kpn.php

или

http://www.example.com/abc/def/ghi/kpn.php

тогда ваша страница загружается, но не вашу карту, и генерируется это предупреждение.

ЗАКЛЮЧЕНИЕ

Используйте тот же путь (URL-адрес) в этих 2 местах.

  1. При загрузке страницы с картой.

  2. Под Edit allowed references.

После этого я избавился от этого предупреждения.

+0

Вы должны добавить www.domain.com/* в этом случае. –

+0

добавил все возможные варианты URL-адреса 'https: // subdomain.site.com/index.html'' https://subdomain.site.com/ '' https: // subdomain.site.com '' http: // subdomain.site.com/index.html '' http: // subdomain.site.com/'' http: // subdomain.site.com' 'subdomain.site.com/index.html'' subdomain.site.com/'' subdomain.site.com' ни один из них не работает даже 'https: // *. site.com/*' 'http: // * .site.com/* '' * .site.com/* '' subdomain.site.com/* '' * .subdomain.com/index.html' и т. д. и т. д. даже установка NO referer's для разрешения все приводят к тому же сообщению об ошибке – user3338098

+1

ОК, так что теперь он работает ... никаких изменений не произошло ... видимо, существует большая задержка между тем, что говорит Google, и тем, что она на самом деле делает. но это только стало проблемой, когда у пользователя SINGLE возникла эта проблема, возившись с этим, это стало проблемой для всех, пока Google не обновил свои настройки. – user3338098

0

Мне удалось заставить это работать, удалив всех моих рефереров и разрешив все. По-видимому, в консоли разработчика есть ошибка, которая вызывает проблемы.Некоторые люди говорят, что они могут получить ссылающиеся на работу, удалив все затем добавить все обратно сразу, а не построчно:

https://productforums.google.com/forum/#!topic/maps/mSVyDazRMQo

Предыдущих вещей, которые я пробовал:

  1. регенерирующего Key
  2. Установка всех карт APIs на разрешенные
  3. жестких кодирования абсолютных путей ссылающегося

Боковое примечание, когда я не включал в себя мою api_key, все было оштрафовано, хотя я уверен, что в конечном итоге они отключат вас, если вы не используете свою api_key.

2

geocodezip предоставил информацию, которая мне нужна. Я действительно дважды загружал библиотеку googlemaps: один раз в файл index.html и один раз в iFrame. Я изменил свой код, чтобы iFrame не загружал библиотеку googlemaps, а вместо этого использовал родителя. Спасибо geocodezip!

3

Сначала вам нужно перейти на https://console.developers.google.com/ и выбрать API.

В API Карт Google выберете Google Maps JavaScript API и убедитесь, что вы включили API для Google Maps JavaScript.

Во-вторых, необходимо создать ключ API:

  1. Перейти к мандатной
  2. Создать новый ключ и выберите Browser Key
  3. Нет необходимости указывать какие-либо источники

Таким образом, вы после сохранения вы должны увидеть Any referrer allowed.

+0

Спасибо @Touch. , его работы –

0

Что для меня работало, так это использовать Firebug, чтобы найти точный URL-адрес, который отправил запрос API Карт Google. Как указано в документации Google Maps API на troubleshooting authorization, «Как найти правильный URL» часть:

The URL that needs to be authorized is the one in the Referrer header for the requests the browser sends to Google to load the API.

В моем случае, давайте предположим, у меня есть веб-сайт example.com. В консоли разработчика под ключом API Карт Google я добавил много комбинаций реферера, таких как example.com/*, *.example.com/*, example.com, но все же InvalidKeyOrUnauthorizedURLMapError сохранялся.

Мое решение, как я уже упоминал, использовать Firebug: откройте example.com и посмотрите, что сделал запрос реферера на https://maps.googleapis.com/maps/api/js?..., и это было http://example.com, и все. Я добавил http://example.com/* к включенным URL-адресам в консоли разработчиков под моим соответствующим ключом API, и теперь все работает нормально.

Важно знать, где искать на Firebug: это вкладка Net. Просто нажмите на просьбу maps.googleapis ... и искать меню Referer

2

Перейти к API, и найти «Google Maps JavaScript API» после того, как вы его открыть, просто нажмите «Включить API»

3

После многих проб и ошибок, это работал на меня (Эдуардо. Спасибо!)

The URL that needs to be authorized is the one in the Referrer header for the requests the browser sends to Google to load the API.

Под Browser Credentials > REFERERS

Добавить эти

  1. .example.org/
  2. www.example.org/*
  3. http://www.example.org
  4. http://example.org
+0

После того, как вы попробовали все другие предложения, это работало для меня. –

+0

Я пропустил простую вещь. Спасибо дружище! – fruqi

0

Я получил его для работы путем обмена ключами с моими специальными созданными ключами И прочитал эту веб-страницу несколько раз очень тщательно. Мой совет - добавить или обменять ваши API-интерфейсы Google по адресу https://console.developers.google.com/apis/credentials, прежде чем приступать к очень сложным сценариям.

Вставьте свои собственные ключи API в самой первой строке Google Map JavaScript:

0

Если вы были настроить все конфигурации, как ключ API и т.д., и вы все еще получили ошибки, пожалуйста, включите все ваши обязательные API для карт Google.

как: -

Google Maps API Код
Google Maps API геокодирования
Google Maps API геолокации
Google Maps JavaScript API

Смежные вопросы