【问题标题】:How do I use an API key with Google Static Maps?如何在 Google 静态地图中使用 API 密钥?
【发布时间】:2015-06-04 03:00:02
【问题描述】:

我正在尝试使用谷歌静态地图,但我不断收到 403 错误,并且在试图解决这个问题时遇到了很多困惑。如果我右键单击损坏的图像并选择“在新选项卡中打开”,那么它将正常加载,之后它也会在我嵌入它的实际页面上正常加载。我不确定它为什么会这样工作。

我读到 403 意味着它达到了一些配额限制,尽管这是一个相当低流量的服务器。我尝试设置一个 API 密钥,但我对它应该如何工作感到很困惑。谷歌的documentation for static maps 说你需要创建一个“服务器密钥”,而且这个密钥应该在服务器上保密,而不是嵌入到页面上。如何使用服务器密钥而不将其放在图像标签的源中?

我在 stackoverflow 的其他地方读到我应该使用“浏览器密钥”。这似乎工作正常,但我打算在许多域上使用它,我不能将所有域都放在允许的引用者中。我应该让它允许任何推荐人吗?

我正在使用带有如下 URL 的 V2 API: http://maps.googleapis.com/maps/api/staticmap?center={someaddress}&size=250x250&zoom=14&key={mykey}

【问题讨论】:

  • Google 已经更正了他们的文档,说您需要浏览器密钥,而不是服务器密钥。

标签: google-static-maps


【解决方案1】:

您可以将浏览器密钥与静态地图一起使用,因此您不需要服务器密钥。如果您想在多个域上使用浏览器密钥,您有多种选择。

可以只允许浏览器密钥上的所有引荐来源网址,但您会冒其他人也开始使用您的 API 密钥的风险。如果您尚未设置计费,那么您承担的最大风险是图像变得不可用,因为其他人使用了您的密钥,因此您达到了配额。

第二种选择是为每个域使用单独的浏览器 API 密钥。然后,您可以设置每个域允许的引荐来源网址。

【讨论】:

  • 感谢您的帮助,不幸的是,就我而言,为每个域创建单独的密钥也不是一个可行的选择。
【解决方案2】:

我最终设法找出了错误的原因。我在 url 中包含了一个自定义地图标记,结果发现服务器在向谷歌提供标记图像时可能有点慢。谷歌在等待地图标记时似乎有一个非常低的超时,所以它会放弃等待并返回一个错误。 我删除了自定义标记,现在它可以正常工作,无需使用 API 密钥。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    相关资源
    最近更新 更多