【问题标题】:Google Maps: Platform rejected your request. This I[...] site or [...] is not authorized to use this API key谷歌地图:平台拒绝了您的请求。此 I[...] 站点或 [...] 无权使用此 API 密钥
【发布时间】:2018-11-05 08:10:59
【问题描述】:
<iframe width="100%" height="427" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/place?q=place_id:[place_id]&key=[my_key]" allowfullscreen></iframe>

“Google Maps Platform 拒绝了您的请求。此 IP、站点或移动应用程序无权使用此 API 密钥。从 IP 地址 xxx.xxx.xxx.xxx 收到请求,引用者:https://xxx.xxx/

在 Google Dev 中,我启用了 Maps Embed API 和 Maps Static API。我已将密钥限制为仅与我的域一起使用,其中包含上述代码,例如https://[asterisk].thedomain.com/[asterisk]

当我不将密钥限制在这个单一域时,地图嵌入工作并且不会引发错误。

问题是,密钥在代码中是可读的,因此我需要将密钥限制在我的域中。

有什么想法吗?

谢谢。

【问题讨论】:

  • 我刚刚发现我遇到了同样的问题,但没有明显的问题原因。我的网站是从“www.domain.com”提供的,所以我的两个“https://*.domain.com/*”和“http://*.domain.com/*”过滤器应该可以工作......但事实并非如此。

标签: api maps embed


【解决方案1】:

如果您查看 google 提供的示例,则它是其中的错误。它应该是:http://*example.com/* 而不是 http://*.example.com/*,因为如果您的域名之前没有类似 www 的东西,它将无法工作。

http://example.com 无法正常工作,因为它在//example 之间没有.

【讨论】:

    【解决方案2】:

    确保您已将“Maps Embeded API”添加到您正在使用的 API 密钥的密钥限制/api 限制部分。

    【讨论】:

    • 在我的情况下这不是必需的。将 Google Maps JS API 包含在允许的 API 列表中就足够了。诀窍确实如此,正如我在上面解释的那样,尽管考虑到我们通常期望 * 不是、1 或多个字符,这不合逻辑。
    【解决方案3】:

    我的相关网站以https://thedomain.com/ 的形式发送。

    Google Maps Platform 确实在 https://www.thedomain.com/https://thedomain.com/ 之间有所不同。

    将我的 API 限制为 https://thedomain.com/* 对我有用,而 https://*.thedomain.com/* 并不意味着 * 什么都不是。

    【讨论】:

      猜你喜欢
      • 2015-06-21
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2017-01-11
      • 2014-03-22
      • 1970-01-01
      相关资源
      最近更新 更多