本地主机的 Google Maps API 密钥

Posted

技术标签:

【中文标题】本地主机的 Google Maps API 密钥【英文标题】:Googlemaps API Key for Localhost 【发布时间】:2017-01-12 18:46:05 【问题描述】:

如何让 Google Maps API 密钥在 localhost 上工作?

我创建了一个 API 密钥,并在引荐来源网址下添加了以下内容:

Accept requests from these HTTP referrers (websites) (Optional)

Use asterisks for wildcards. If you leave this blank, requests will be 
accepted from any referrer. Be sure to add referrers before using this key 
in production. 

localhost

这不起作用,如果我排除 API 密钥,它也不起作用。

【问题讨论】:

How to set Google API key restriction - HTTP referrers的可能重复 【参考方案1】:

如果显示“接受来自这些 HTTP 引荐来源网址(网站)的请求(可选)”,则无需列出任何引荐来源网址。因此,请单击此页面上 localhost 旁边的 X,但继续使用您的密钥。

它应该会在几分钟后工作。

所做的更改有时可能需要几分钟才能生效,因此请等待几分钟,然后再次测试。

【讨论】:

【参考方案2】:

您可以关注tutorial,了解如何使用谷歌地图在本地主机上进行测试。

单击此链接并按照流程操作(创建新项目,API 密钥 > 浏览器密钥,注册 'localhost' 域):https://console.developers.google.com//flows/enableapi?apiid=maps_backend&keyType=CLIENT_SIDE&reusekey=true 生成密钥 按照此处所述部署 Google 地图小部件:http://www2.microstrategy.com/producthelp/10/GISHelp/Lang_1033/GIS_Integration.htm 将您的 Google Maps API 密钥添加到 googleConfig.xml(如上一个链接中所述) ENTER_YOUR_KEY_HERE 重启网络服务器

检查这些相关的 SO 线程:

Google Maps v3 API key won't work for local testing How to use google maps simple api on localhost Google Maps v3 api for localhost not working

希望这会有所帮助!

【讨论】:

断开的链接已损坏 @Dementic console.developers.google.com/flows/… @AEGrey - 不适合我,适合未来的用户。【参考方案3】:

您可以按照这种方式进行操作。它至少对我有用:

在凭证页面中:

    选择带有 IP 地址的选项(选项号 3)。

    输入您的提供商提供的 IP 地址。如果没有,请使用此链接搜索您的 IP 地址:https://www.google.com/search?q=my+ip

    保存。

    在脚本标签之间更改您的谷歌地图链接如下:

    https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzxxxxxxxx"

    等待大约 5 分钟或更长时间,让您的 API 密钥传播。

现在你的谷歌地图应该可以工作了。

【讨论】:

【参考方案4】:
    转到这个地址:https://console.developers.google.com/apis 创建新项目并创建凭据(API 密钥) 点击“图书馆” 点击任何你想要的 API 点击“启用” 点击“凭据”>“编辑密钥” 在“应用程序限制”下,选择“HTTP 引荐来源网址(网站)” 在“网站限制”下,点击“添加项目” 在文本字段中输入您的网站地址(或“localhost”、“127.0.0.1”、“localhost:port”等用于本地测试),然后按 ENTER 将其添加到列表中 保存并在您的项目中使用您的密钥

【讨论】:

这也是我所做的,但我想知道:这是否意味着在本地工作的任何人 (localhost / 127.0.0.1) 都可能使用我的 API KEY(并可能在新定价后为我推断成本2018-06-11 发生?) @tmanolatos 是的,就是这个意思。授予您的生产密钥 localhost 权限并不是一个好习惯,因为任何人都可以在本地运行时使用您的密钥。相反,您应该维护两个密钥。一种用于生产的,任何人都可以看到,因此只能在您的域中使用。一种用于开发的,应被视为凭据(不要共享)并允许从本地主机访问。 @tmanolatos 是的,但是您必须构建两个密钥,一个用于测试应用程序,一个用于主应用程序, 我在执行上述步骤后收到此响应: "error_message" : "具有引用限制的 API 密钥不能与此 API 一起使用。", "results" : [], "status" : "REQUEST_DENIED" 这是 URL,其中 DEV_KEY 替换为我的 api 密钥:maps.googleapis.com/maps/api/geocode/… @the_cheff 任何人都可以设置任何referrer header。【参考方案5】:

您必须在 javascript 控制台中检查具体错误(例如,在 Firefox for Windows 中为 Ctrl + Shift + K)。

根据Steven Gliebe (2016),这个问题有四种常见情况。如果我可以总结一下,就像这样:

    MissingKeyMapError >> Get Google Maps API Key(但也可以考虑备选方案 2) RefererNotAllowedMapError >> 在 google developer dashboard 中注册您的 localhost:port。 ApiNotActivatedMapError >> 在Google API Library page 中启用 Google Maps API InvalidKeyMapError >> 将您的key 正确添加到您的脚本/代码中

在做一些代码修改后,请根据需要清除浏览器缓存。

如果有其他错误,您可以查看 Google Maps API Error Codes Documentation 页面。

【讨论】:

【参考方案6】:

如果您在 localhost 上工作,请为您的开发创建一个单独的 APIkey,然后删除对该密钥的限制,以便您的 localhost 可以使用它。请记住不要在生产中使用此密钥,这样您就不会将您的密钥暴露给在线猎人。

我遇到了同样的问题,并且在我创建了一个专门用于开发的单独 apikey 然后删除了它的限制之前,所有尝试在我的 localhost 环境上工作的限制都没有成功。不过我不会在生产环境中使用该密钥,一旦开发完成,我会立即删除 API 密钥。

我知道这篇文章迟了,但对于将来可能会面临这个问题的人来说,这是最好的选择。

【讨论】:

【参考方案7】:

我想我参加聚会有点晚了,虽然我同意为开发(本地主机)和产品创建一个单独的密钥,但可以只用一个密钥来完成。

当您使用应用程序限制 -> http 引用 -> 网站限制时,您可以输入通配符 url。

但是使用通配符,例如 .localhost/.localhost:port。 (当已经有 .yourwebsite.com/* 时)似乎不起作用。

只放一个 * 就可以了,但这基本上会给你一个无限的密钥,这也不是你想要的。

当您包含完整路径而不使用通配符 * 时,它也可以工作,所以在我的情况下:

http://localhostport/ http://localhost:port/something-else/这里

使用相同的 API 密钥使 Google 地图在本地工作,就像在 www.yourwebsite.com 上一样。

无论如何,如果有 2 个单独的键也是一种选择,我建议这样做。

【讨论】:

http 显式协议对我有用。谢谢。【参考方案8】:

在谷歌搜索中输入“我的 IP”我得到了我的公共 IP 地址并将其粘贴到 IP 地址中(第三个选项)。它对我有用。

【讨论】:

【参考方案9】:

我用的时候没用

http://localhostport/
http://localhost:port/something-else/here

但是,删除 http 对我有用。我刚刚添加了localhost:8000,没有在它前面加上http。

【讨论】:

【参考方案10】:

转到这个地址:https://console.developers.google.com/apis

创建新项目并创建凭据(API 密钥) 点击“图书馆” 单击您想要的任何 API 点击“启用” 单击“凭据”>“编辑密钥” 在“应用程序限制”下,选择“HTTP 引荐来源网址(网站)” 在“网站限制”下,点击“添加项目”

添加 * 并回车 保存并在您的项目中使用您的密钥

【讨论】:

以上是关于本地主机的 Google Maps API 密钥的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps javascript Api 不适用于本地主机

Google Maps API V3 中的 API 密钥是啥?

Google Maps Geocoding API - 使用 API 密钥拒绝请求

新的 Google API 密钥“Google Maps API v3”不适用于 Google Places API?

我应该采取哪些措施来保护我的Google Maps API密钥?

Android Manifest 未向 Google Maps 提供 API 密钥