如何在 Google 静态地图中使用 API 键?

How do I use an API key with Google Static Maps?

我正在尝试使用 google 静态地图,但我一直收到 403 错误,并且在试图解决这个问题时遇到了很多困惑。如果我右键单击损坏的图像并选择 "open in new tab" 那么它将正常加载,之后它也将在我嵌入它的实际页面上正常加载。我不确定为什么会这样。

我读到 403 意味着它达到了一些配额限制,尽管这是一个相当低流量的服务器。我尝试设置一个 API 键,但我对它应该如何工作感到很困惑。 Google 的 documentation for static maps 表示您需要创建一个 "Server Key",而且该密钥应该在服务器上保密,而不是嵌入到页面中。如何在不将服务器密钥放入图像标记源的情况下使用服务器密钥?

我在 Whosebug 的其他地方读到我应该改用 "Browser Key"。这似乎工作正常,但我打算在许多域上使用它,我不能将所有域都放在允许的引荐来源网址中。我应该让它允许任何推荐人吗?

我正在使用 V2 API 和这样的网址: http://maps.googleapis.com/maps/api/staticmap?center={someaddress}&size=250x250&zoom=14&key={mykey}

您可以对静态地图使用浏览器密钥,因此不需要服务器密钥。如果您想在多个域上使用浏览器密钥,这里有多个选项。

可以只允许浏览器密钥上的所有引荐来源网址,但是您 运行 其他人也开始使用您的 API 密钥的风险。如果您没有设置结算,那么您面临的最大风险是图像变得不可用,因为其他人使用了您的密钥,因此您达到了配额。

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

我最终设法找出了错误的原因。我在 url 中包含了一个自定义地图标记,结果发现服务器在向 google 提供标记图像时可能有点慢。 Google 似乎在等待地图标记时超时时间很短,因此它会放弃等待并 return 出错。 我删除了自定义标记,现在它工作正常,无需使用 API 键。