我已在PHP应用程序中正确实现了Google API客户端。我能够连接到我想要的服务。
但现在我想检查用户输入的API密钥是否有效。
我查看了Google_Client()类公开的方法,但我认为我不确定如何检查。
下面是我的类中创建客户端的方法:
private function client( $api_key ) {
$client = new \Google_Client();
$client->setClassConfig( 'Google_Cache_File', 'directory', $this->cache_dir );
$client->setDeveloperKey( $api_key );
$client->setApplicationName( $this->name );
$client->setScopes( array( \Google_Service_Calendar::CALENDAR_READONLY ) );
$client->setAccessType( 'online' );
return $client;
}
我想制作另一种方法来判断使用的API密钥是否有效......
public function validate_api_key( $api_key ) {
$client = $this->client( $api_key );
// What should I use here to check if $api_key is valid?
if ( $client ) {
return true;
}
return 'error';
}
或者我应该连接到服务,然后检查我是否有读取权限?但我相信有一种更简单,更好的方法可以做到这一点......
你可以用JavaScript检查;错误的密钥将始终设置未记录的属性window.G_INCOMPAT
。用function alert() {}
进行猴子修补可能需要摆脱alert()
的无效密钥,这只会干扰设置密钥的过程。
这个answer有一个关于alert()
的有趣方法
还有一个记录的功能,可以挂钩:https://developers.google.com/maps/documentation/javascript/events#auth-errors
如果它真的必须是PHP,你仍然可以生成一些JS并使用PhantomJS运行它。
看到我的Github:php-phantomjs ......这不是不可能的。