Я пытаюсь получить данные пользователя из Google Plus, используя PHP.
Я использую ниже учебник
https://www.youtube.com/watch?v=-65R420rIUA
Ситуация:
Пользователь входит в мое приложение Android с помощью кнопки Google Plus, я получаю токен доступа, используя googleSignInResult.googleSignInAccount.getIdToken()
Я отправляю этот токен на мой сервер, который запускает php для извлечения данных о пользователях с помощью клиента php Google (как описано в видео)
ниже мой код
try{
$gClient = new Google_Client();
$gClient->setApplicationName('pixyfi');
$gClient->setClientId($config['google']['appid']);
$gClient->setClientSecret($config['google']['secret']);
$token = json_encode(array("access_token"=>$lptoken,"refresh_token"=>$lptoken,"token_type"=>"Bearer","expires_in"=>3600,"id_token"=>$lptoken,"created"=>1320790426));
$gClient->setAccessToken($token);
$gClient->addScope(Google_Service_Plus::PLUS_ME);
$plus = new Google_Service_Plus($gClient);
$gpUserProfile = $plus->people->get('me');
echo "User Fetched as:".$gpUserProfile['id'];
}
catch(Google_Auth_Exception $x){
echo "Error:".$x;
}
Но я получаю ошибку:
Ошибка: Google_Auth_Exception: ошибка обновления токена OAuth2, сообщение: ‘{
«error»: «invalid_client»} ‘в /var/www/html/api/auth/vendor/google/apiclient/src/Google/Auth/OAuth2.php:364
Не могли бы вы сообщить мне, какую ошибку я здесь делаю?
это часть моего кода, который обрабатывает токены. Реализуйте эту логику и дайте мне знать, если вы все еще получаете ошибки.
$ row извлекается из базы данных и содержит информацию о токене
$client->setAccessToken($row['token']);
if(time()>$row['created']+$row['expires_in'])
{
$client->refreshToken($row['refresh_token']);
$token=$client->getAccessToken();
DB::Query("-----UPDATE DB TOKEN INFO-------");
$client->setAccessToken($token);
}
Других решений пока нет …