加载Google Maps API JavaScript时出现不同的错误(配额、禁用、API密钥错误或无错误)。

3
我们将网站迁移到了Google Maps,但是使用JavaScript Maps API(当然是v3)加载地图时会出现不同的错误。有时地图可以正确加载,而另外一些时候则出现以下两个主要错误:
"Google已禁用此应用程序使用Maps API。请参阅服务条款http://www.google.com/intl/en_US/help/terms_maps.html获取更多信息。"(JS警报)
"此站点已超过每日地图配额。如果您是此站点的创建者,请访问文档以了解更多信息。"(这是一个DOM覆盖层) 最小化实例:此代码尚未上线,但是在这里有一个最小化示例:http://mappat.com/maptest.php。它仅是Google自己的Hello World示例,填入我们的密钥即可出现问题。 网络流量检查: 我注意到第一个错误是在“AuthenticationService.Authenticate”失败时显示的(返回[0,5,0]),第二个错误是在“QuotaService.recordEvent”返回[0,null,0]时显示的。这些都是SDK内部的远程调用,我不知道这些细节是否相关。 我们尝试过的事情: 顺便说一下,计费已启用,并且我们始终远低于配额限制。我已经尝试了很多事情,比如新建密钥、等待几天、在控制台中关闭和重新启动Maps API等等。我填写了允许的引荐者,但也保持开放以允许其他人。没有任何区别。
我不敢在dev控制台中开始一个新项目,因为这整个问题实际上就是由于我遇到了(不同的)服务器密钥问题而开始的。那个服务器部分现在完美地运行着,有点讽刺。
[编辑: 我刚试图在加载JS地图文件时省略API密钥,希望一切顺利。但是现在,服务器端对places/searchtext的调用又开始出现随机的“提供的API密钥已过期”错误,这与我们创建新项目的原因相同。巧合吗?此外,我不喜欢这个选项,特别是考虑到未来(达到25k、超过并转为商业账户)。

所以,我陷入了困境。这是我第一个SO问题,可能是因为我们被列入黑名单了吗?也许是因为重复的项目?有没有办法找出原因并/或使我们“重置”?还是我简单地忽略了什么?

任何帮助都将不胜感激,因为在解决这个问题之前,这是一个无法接受的障碍。

旁注:我还提交了一个错误报告,因为我认为随机出现错误不是预期行为。开发团队可以决定是否同意。如果不同意,我们仍然有一个问题,因此需要这个SO问题。

这真的很好奇。你能试着创建一个新的控制台API项目,启用“Google Maps JavaScript API v3”,生成一个API KEY并尝试使用它吗? 你也可以尝试将你的域名作为“允许编辑的引用者”吗? - Seb P
@Seb:我有点担心为这个网站创建另一个项目会给我们的域名贴上更强烈的“不按照规定方式做事”的标签。或者我是不是因为毫无理由而变得“多疑”,不应该担心这个问题? - Jochem
你遇到问题的浏览器是哪些?我在Chrome中没有看到任何问题(但显然没有像你一样进行广泛测试)你的最小示例 - geocodezip
如果你在谷歌上搜索,最近有多个关于这个禁用键问题的报告。 - Tom
@Tom 谢谢你分享你的经验。希望这只是暂时的问题,因为我已经没有尝试的东西了。我在我的问题底部链接了错误报告。如果它类似于你的情况,你可能想要给它点赞或在那里描述你的经验。(我确实搜索了很多,但大多数关于这个错误的报告都是由于在浏览器中使用服务器密钥、错误的允许引用者、Maps API关闭或-不太近期的-v2/v3转换) - Jochem
显示剩余9条评论
2个回答

2
我认为你的php var dump中存在语法错误:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYuWR5wqux1_iTmfIWPveheIOr5PhqjEs&?>sensor=FALSE&language=en">
</script>

在传感器之前,你有什么


好的,这只是我为测试其他事情而添加的内容。我太愚蠢了,玩弄我在SO上发布的示例。抱歉。已修复,但那不是问题所在。 - Jochem
另一个问题(虽然它会给出不同的信息)是sensor=FALSE应该是sense=false - geocodezip
好的,我尝试了两种方式,都可以。如果你确定的话,我会把它改成“false”,这样就更完整了。 - Jochem

1
这个问题在一周左右神奇地消失了。我没有得到谷歌的任何回应,但他们可能当然会在幕后更改/重置一些内容。顺便说一下,这个漏洞仍标记为“新的”。
我给遇到此问题的其他人的建议是,首先检查一些基本事项,因为我收到的个别错误可能还可以由实际操作错误(例如允许引用器中的错误)导致。如果三次确认后所有内容都正确无误,只需从请求中删除API密钥,像这样测试一段时间,然后在几天后重试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接