Как проверить, является ли ключ API клиента Google действительным с библиотекой API Google PHP?

Я правильно реализовал клиент Google API в своем приложении PHP. Я смог подключиться к услуге, которую хотел.

Но теперь я хочу проверить, является ли ключ 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';
}

Или мне следует подключиться к услуге, а затем проверить, получил ли я оттуда доступ для чтения?
Но я считаю, что есть более простой и лучший способ сделать это …

6

Решение

вы можете проверить с помощью JavaScript; неправильный ключ всегда устанавливает недокументированное свойство window.G_INCOMPAT, мартышка-патчинг с function alert() {} может потребоваться, чтобы избавиться от alert() для неверного ключа, который только нарушил бы процесс установки ключа.

этот ответ имеет интересный подход в отношении alert()

есть также документированная функция, которую можно подключить к:
https://developers.google.com/maps/documentation/javascript/events#auth-errors

если это действительно PHP, вы все равно можете сгенерировать JS и запустить его с PhantomJS.

смотри мой Github: PHP-phantomjs …это не невозможно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector