Google Maps v3 API密钥不适用于本地测试

eme*_*his 11 javascript google-maps google-maps-api-3

我有一个API密钥.它是"浏览器应用程序的关键(带有引用者).它工作正常,但当我尝试在我的本地开发服务器上使用它时,我没有被授权.我使用MAMP,我的本地URL如下所示:http://mysite.dev.

在"Referers"部分,我有:

mysite.com/*
mysite.dev/*
Run Code Online (Sandbox Code Playgroud)

制作一个(.com)工作正常,所以我很确定我的语法是正确的.但无论我尝试使用本地版本,我都会收到Google的授权错误信息,告诉我:

Google已禁止将Maps API用于此应用程序.提供的密钥不是有效的Google API密钥,也未授权此网站上的Google Maps Javascript API v3.如果您是此应用程序的所有者,则可以在此处了解如何获取有效密钥:https: //developers.google.com/maps/documentation/javascript/tutorial#api_key

肯定有办法让这个工作!它是什么?

Joy*_*son 26

更新:

截至2016年6月22日,Google Maps V3不再支持无密钥访问(任何不包含API密钥的请求).

您可以注册密钥:https://developers.google.com/maps/documentation/javascript/get-api-key

并将其添加到您的网址:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

我的申请遇到了类似的问题.我使用没有客户端密钥的url进行测试,并在将代码放入生产服务器之前添加密钥.这是一种解决方法而不是解决方案,我假设您对本地测试的使用率很低.

测试服务器

<script type="text/javascript" 
   src="https://maps.googleapis.com/maps/api/js?sensor=SET_TO_TRUE_OR_FALSE">
</script>
Run Code Online (Sandbox Code Playgroud)

生产服务器

<script type="text/javascript"
  src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=SET_TO_TRUE_OR_FALSE">
</script>
Run Code Online (Sandbox Code Playgroud)

网址:https://developers.google.com/maps/documentation/javascript/examples/

如果您检查以下站点并转到基本映射示例,您会发现示例不使用密钥.这是映射的v2和v3之间的差异之一,密钥不是强制性的.

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
Run Code Online (Sandbox Code Playgroud)

请注意,省略密钥属于免费的Google Maps API许可.如果您需要跟踪使用情况,则必须至少提供密钥.如果您需要更多流量,则需要提供客户ID(Google Maps for Work).

https://developers.google.com/maps/licensing