适用于Localhost的Googlemaps API密钥


91

如何获取googlemaps 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键,它也不起作用吗?


Answers:


130
  1. 转到此地址:https : //console.developers.google.com/apis
  2. 为您的项目创建一个API密钥
  3. 点击“图书馆”
  4. 单击所需的任何API
  5. 点击“启用”(右上方)
  6. 点击“凭据”>“编辑密钥”
  7. 在“密钥限制”下,选择“ HTTP引荐来源网址(网站)”
  8. 在文本字段中输入您的网站地址(或对于本地测试,为“ localhost”,“ 127.0.0.1”,“ localhost:port”等),然后按ENTER将其添加到列表中
  9. 在项目中使用密钥

8
这也是我所做的,但是我想知道:这是否意味着在本地工作的任何人(localhost / 127.0.0.1)都可能使用我的API KEY(并且可能在2018-06-11的新定价发生后为我推断成本?)
tmanolatos

31
@tmanolatos是的,那是什么意思。授予生产密钥本地主机权限不是一个好习惯,因为任何人都可以在本地运行时使用您的密钥。相反,您应该维护两个密钥。一种用于生产的产品,任何人都可以看到,因此只能在您的域中使用。用于开发的一种,应视为凭据(不共享),并允许从本地主机访问。
the_cheff

2
@tmanolatos是的,但是您必须构建两个密钥,一个用于测试应用程序,一个用于主应用程序,
mirzaei.sajad

执行上述步骤后,我得到此响应:{“ error_message”:“具有引用限制的API密钥不能与此API一起使用。”,“结果”:[],“状态”:“ REQUEST_DENIED”}这是URL ,其中DEV_KEY取代有我的API密钥: maps.googleapis.com/maps/api/geocode/...
rmutalik

当我使用PROD_KEY api密钥时,它将返回正确的JSON。
rmutalik

10

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

在“凭据”页面中:

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

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

  3. 保存。

  4. 更改您的google map链接,如下所示在scrip标签之间:

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

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

现在,您的Google地图应该可以了。


9

如果您正在使用localhost,请为您的开发创建一个单独的APIkey,然后删除对该键的限制,以便您的localhost可以使用它。切记不要在生产中使用此密钥,因此不要将密钥公开给猎人。

我遇到了同样的问题,直到我创建了一个专门用于开发的单独的apikey并删除了它的限制之后,所有试图获得在我的localhost环境上运行的限制的尝试都没有成功。但是,我不会在生产环境中使用该密钥,并且在完成开发后,我将立即删除API密钥。

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


5

猜猜我参加聚会有点晚了,尽管我同意为开发(本地主机)和产品创建单独的密钥,但仅用一个密钥就可以做到。

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

但是使用通配符如.localhost / 要么 .localhost:{port}。 (当已经有 .yourwebsite.com / *)似乎无效。

只需输入一个*即可工作,但这基本上为您提供了无限键,这也不是您想要的。

当您不使用通配符*包含完整路径时,它也有效,因此在我的情况下:

http:// localhost {port} /
http:// localhost:{port} / something-else /此处

使用相同的API密钥,使Google地图在www.yourwebsite.com上都可以在本地使用。

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


1

您可以按照本教程,了解如何使用Google Maps在本地主机上进行测试。

检查以下相关的SO线程:

希望这可以帮助!


2
断开的链接已断开
拉斐尔·赫斯科维奇


@AEGrey-不适合我,面向未来的用户。
拉斐尔·赫斯科维奇

1

您必须在javascript控制台中检查特定的错误(例如Firefox for Windows中的Ctrl+ Shift+ K)。

根据Steven Gliebe(2016)的研究,有四个常见的问题案例。如果我可以总结一下,是这样的:

  1. MissingKeyMapError >>获取Google Maps API密钥(但也考虑替代方法2)
  2. RefererNotAllowedMapError >>在google开发人员仪表板中注册您的localhost:port
  3. ApiNotActivatedMapError >>在Google API库页面中启用Google Maps API
  4. InvalidKeyMapError >>将密钥正确添加到脚本/代码中

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

如果还有其他错误,您可以查看Google Maps API错误代码文档页面。


0

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

几分钟后,它应该可以工作了。

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


0

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


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.