【问题标题】:Google Map error: InvalidKeyOrUnauthorizedURLMapError谷歌地图错误:InvalidKeyOrUnauthorizedURLMapError
【发布时间】:2015-06-16 18:45:33
【问题描述】:

我正在用 JavaScript/HTML/CSS 开发一个使用 Google 地图的应用程序。我收到以下警报对话框:

“此页面无法显示 Google Maps 元素。提供的 Google API 密钥无效或此站点无权使用它。错误代码:InvalidKeyOrUnauthorizedURLMapError”

应用程序确实实际显示地图元素;警报不是问题,只是它根本不应该出现。地图显示正常。

我已进入 Google 开发者控制台,并在“凭据”部分中将“允许的引荐来源”“编辑为 mydomain.com/*”

我还进入了 API 部分的 Google Developer's Console 并启用了 11 个 Google Maps API。

【问题讨论】:

  • 尝试将“www.mydomain.com/*”添加到允许的引荐来源网址。
  • 谢谢。试过了。没有变化。
  • 在控制台中,当弹出带有上述消息的警告框时,我看到此消息:“InvalidKeyOrUnauthorizedURLMapError: developers.google.com/maps/documentation/javascript/… VM3230:45” 但是当我在VM3230中设置断点时,下一次发生警报时,引用的是另一个文件,例如 VM3278:45,所以当它碰巧看到它在我的程序中的位置时,我无法暂停程序。
  • 通常当这种情况发生并显示地图时,API 被包含多次,一次使用您期望的密钥(或没有密钥),一次使用错误的密钥...
  • 是的,API 被多次包含是正确的:一次在 index.html 中,一次在 index.html 的 iFrame 中。他们使用相同的密钥。在您说完之后,我认为使用相同的密钥可能会出现问题,因此我在 Google Developers Console 中创建了另一个项目,并为这两个包含项提供了不同的密钥。但这似乎也不起作用。

标签: javascript google-maps-api-3


【解决方案1】:

经过大量的推荐人组合、删除和重新创建凭据后,我意识到我没有启用“Google Maps JavaScript API”。多可惜。 :)

对于无法使用 google maps api 工作的任何人,请先检查 API 是否启用。

【讨论】:

  • 在这上面浪费了 3 个小时。非常感谢。这行得通。
  • 我曾尝试使用 Google Places API Web 服务,所以我从未想过还必须启用 Google Maps JavaScript API
  • 哇,挣扎了一周,最后这就是问题所在。他们应该发回更清晰的错误消息而不是InvlidKeyOrUnauthorizedURLMapError。谢谢 Tuncay +1。
  • TNX 兄弟。我浪费了很多时间来解决这个问题。
【解决方案2】:

在为这个问题苦苦挣扎之后,我找到了 1 个解决方案。它可能会帮助那些正在寻找适当且准确的解决方案的人,但不能帮助那些寻找 cmet、downvotes 和链接的人。
我的情况下没有显示地图。)

如果假设,您正在加载地图的页面链接是
http://example.com/abc/def/ghi/kpn.php

然后在Edit allowed references下给same(exactly the same)

如果您尝试使用以下方式加载同一页面:

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

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

然后您的页面已加载但您的地图未加载,并生成此警报。

结论

在这两个地方使用相同的路径(Url 地址)。

  1. 加载有地图的页面时。

  2. Edit allowed references下。

在关注这个之后,我已经摆脱了这个警报。

【讨论】:

  • 添加了所有可能的 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/index.html subdomain.site.com/ subdomain.site.com 没有一个有效@ http://*.site.com/* *.site.com/* subdomain.site.com/* *.subdomain.com/index.html 等等.. 等等.. 甚至设置 NO referer's 来让每个人都得到相同的错误信息
  • 好的,现在它可以工作了...没有进行任何更改...显然,谷歌所说的与实际所做的之间存在很大的延迟。但这只是在单个用户遇到此问题时才成为问题,摆弄它会导致它成为每个人的问题,直到谷歌更新它的设置。
【解决方案3】:

首先您需要转到https://console.developers.google.com/ 并选择 API。

在 Google Maps APIs 中选择 Google Maps JavaScript API 并确保为 Google Maps JavaScript 启用 API。

其次,您需要创建一个 API 密钥:

  1. 转到凭据
  2. 创建新密钥并选择浏览器密钥
  3. 无需指定任何推荐人

所以你应该在保存后看到Any referrer allowed

【讨论】:

    【解决方案4】:

    经过大量试验和错误,这对我有用(爱德华多。谢谢!)

    需要授权的 URL 是浏览器发送给 Google 以加载 API 的请求的 Referrer 标头中的 URL。

    Browser Credentials > REFERERS

    添加这些

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

    【讨论】:

    • 在尝试了上述所有其他建议之后,这个对我有用。
    • 我忽略了一件简单的事情。谢谢哥们!
    【解决方案5】:

    geocodezip 提供了我需要的信息。我确实加载了 googlemaps 库两次:一次在我的 index.html 文件中,一次在 iFrame 中。我更改了我的代码,以便 iFrame 不加载 googlemaps 库,而是使用父级。感谢 geocodezip!

    【讨论】:

      【解决方案6】:

      打开 API 菜单并找到“Google Maps JavaScript API”,只需按“启用 API”即可

      【讨论】:

        【解决方案7】:

        我能够通过删除我的所有引荐来源并允许所有引荐来源来实现此功能。显然,开发人员控制台中存在导致问题的错误。有人说他们可以通过删除所有然后将所有内容一次添加而不是逐行添加来让推荐人工作:

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

        我之前尝试过的事情:

        1. 重新生成密钥
        2. 将所有地图 API 设置为启用
        3. 引用者的硬编码绝对路径

        附带说明,当我没有包含我的 api_key 时,一切正常,但我相信如果你不使用你的 api_key,他们最终会关闭你。

        【讨论】:

          【解决方案8】:

          对我有用的是使用 Firebug 来找到向 Google Maps API 发出请求的确切 URL。正如troubleshooting authorization 上的 Google Maps API 文档中所述,“如何找到正确的 URL”部分:

          需要授权的URL是Referrer header中的那个 用于浏览器发送给 Google 以加载 API 的请求。

          就我而言,假设我有一个网站 example.com。在开发者控制台中,在 Google Maps API 密钥下,我添加了许多引荐来源网址组合,例如 example.com/**.example.com/*example.com,但 InvalidKeyOrUnauthorizedURLMapError 仍然存在。

          正如我所提到的,我的解决方案是使用 Firebug:打开 example.com 并查找向 https://maps.googleapis.com/maps/api/js?... 发出请求的引荐来源网址是什么,它是 http://example.com,就是这样。我已将http://example.com/* 添加到开发者控制台中我各自的 API 密钥下启用的 URL,现在一切正常。

          了解在 Firebug 上的何处查找非常重要:它是 Net 选项卡。只需点击对maps.googleapis ... 的请求并查找Referer

          【讨论】:

            【解决方案9】:

            我通过用我自己特殊创建的密钥交换密钥并非常仔细地阅读此网页几次来让它工作。我的建议是在开始编写非常复杂的脚本之前,在https://console.developers.google.com/apis/credentials 添加或交换您的 Google API 密钥。

            在 Google Map javascript 的第一行插入您自己的 API 密钥:

            【讨论】:

              【解决方案10】:

              如果您已经设置了 api 密钥等所有配置,但您仍然遇到错误, 请启用所有关于谷歌地图的强制性 API。

              点赞:-

              Google 地图嵌入 API
              Google 地图地理编码 API
              谷歌地图地理定位 API
              谷歌地图 JavaScript API

              【讨论】:

                猜你喜欢
                • 2016-05-09
                • 1970-01-01
                • 2016-11-24
                • 2014-08-18
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多