如何检查谷歌客户端API密钥是否与谷歌PHP API库有效



我已经在我的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() {}进行monkey- patchching可能需要清除无效密钥的alert(),这只会干扰设置密钥的过程。

这个答案有一个关于alert()的有趣的方法

也有一个文档化的函数,可以钩入:https://developers.google.com/maps/documentation/javascript/events auth-errors

如果它真的必须是PHP,你仍然可以生成一些JS并使用PhantomJS运行它。

查看我的Github: php-phantomjs…这不是不可能的。

最新更新