如何捕获谷歌地图的无效API密钥

Nib*_*Pig 17 javascript google-maps

我有这个代码:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=babab" type='text/javascript'></script> 
Run Code Online (Sandbox Code Playgroud)

如果密钥无效,则会弹出警报,但我想在这种情况下执行某些操作.我不知道如何勾选它.有任何想法吗?

Den*_*s G 5

Google 不提供检查 Google Maps API 密钥的外部方法。因此,您不能使用例如“此代码是否有效abcde1234”来查询某些服务并获得TRUE/FALSE响应。

有一个关于如何生成 Maps API 密钥的讨论。但我建议你看一下Mike Williams 关于这个GValidateKey函数的帖子。这是实际执行神奇验证的函数 - 它究竟做了什么,比如从您的 Google 帐户/域创建哈希 - 我们不知道。

对于您检查提供的 API 密钥是否正确的问题,我看到了两种解决方案:

  1. 用一些自定义代码覆盖传入的警报(检查警报的内容,或检查页面加载后 X 秒内是否出现警报)
  2. 以某种方式获得GValidateKey事先验证您的密钥的功能。也许您可以在引用 API Javascript 之前调用它?对我来说听起来有点骇人听闻...

您可能遇到的问题是您不知道 Google 实际检查了什么。引用者、引用站点、主机 - 很多可能性(它不是服务器的 IP 地址,而是名称加上一些附加信息)。


And*_*man 5

如果使用了无效的 API 密钥,我只是遇到了执行操作的需要。谷歌的文档指出

如果您想以编程方式检测身份验证失败(例如自动发送信标),您可以准备一个回调函数。如果定义了以下全局函数,则会在身份验证失败时调用它。

这就是我需要做的所有事情:

function gm_authFailure() { // Perform action(s) }
Run Code Online (Sandbox Code Playgroud)