Google maps 在不调用API的情况下检测无效的Google Maps API密钥格式

Google maps 在不调用API的情况下检测无效的Google Maps API密钥格式,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我维护了一些允许开发者使用GoogleMapsJavaScriptAPI的插件。开发者有责任在使用我的插件构建应用程序时提供API密钥 在我的示例代码和必须输入密钥的应用程序中,我加入了诸如“(在此处输入API密钥)”或“API\u密钥”之类的示例,因为这些示例已签入可公开访问的源代码存储库。目前,我的插件只是“按原样”将这个字符串传递给GoogleMapsAPI。我所做的唯一验证就是测试是否输入了一些值 我想要一个简单的测试,它将(以合理的准确度)确定给定的字符串是否不是真正的Google M

我维护了一些允许开发者使用GoogleMapsJavaScriptAPI的插件。开发者有责任在使用我的插件构建应用程序时提供API密钥

在我的示例代码和必须输入密钥的应用程序中,我加入了诸如“
(在此处输入API密钥)
”或“
API\u密钥
”之类的示例,因为这些示例已签入可公开访问的源代码存储库。目前,我的插件只是“按原样”将这个字符串传递给GoogleMapsAPI。我所做的唯一验证就是测试是否输入了一些值

我想要一个简单的测试,它将(以合理的准确度)确定给定的字符串是否不是真正的Google Maps API键。到目前为止,我还没有看到任何来自谷歌的文档表明字符串应该是什么样子

我不在乎我的测试是否有时会出现误报,因为如果开发人员没有有效的密钥,他们将在运行时出现Google地图错误。然而,我确实关心假阴性;如果他们提供了一个有效的GoogleMapsAPI密钥,但我的代码错误地将其屏蔽为“无效”,那将是我的失败

我看到的所有有效的Google Maps API键似乎都有39个字符长,由字符
AI
和37个字母数字字符或破折号组成,例如:

AIjlSyEI1n03b7-this-is-fake-5tHcDxy1RnI
如果我只是测试候选密钥的长度至少为39个字符,我会承担惩罚任何人的风险吗?

如果我测试前两个字符是
AI

如果我检查是否存在类似

(如果你看到一个有效的Google Maps API密钥不符合我制定的上述“规则”,你能评论一下吗?这将有助于推翻我的假设。)


(正如MrUpsidown所指出的,没有以这种或那种方式声明任何规则-因此唯一的完美的方法是调用API-但在我的情况下,我希望代码在服务器端独立运行)

您不应该依赖字符串验证,因为API键的格式化方式总是会改变的,正如您所说的,显示有效API键的错误消息会给客户带来不好的体验。这是一个潜在的有用功能,因此我建议您在中提交一个功能请求。现在,如果请求像MrUpsidown建议的那样失败,您所能做的就是调用API来处理任何错误


希望这有帮助

我已经详细阅读了该文件,但它没有提供我要求的信息。请阅读我的问题。我不能假设我的插件的用户可以在服务器端调用GoogleMapsAPI来验证密钥。我只想要一个简单的字符串测试。没有其他的文档化方法。好问题。我明天下午给你答复。谢谢。我在这里提出:太棒了!谢谢:)