我正在尝试使用PHP从google plus获取用户的数据。 我正在使用以下教程 https://www.youtube.com/watch?v=-65R420rIUA
情况:
用户使用google plus按钮登录我的app android我使用googleSignInResult.googleSignInAccount.getIdToken()
我将此令牌发送到我的服务器,该服务器运行php以使用google php客户端获取用户数据(如视频中所述) 下面是我的代码
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令牌时出错,消息:' { "错误" :" invalid_client" }'在/var/www/html/api/auth/vendor/google/apiclient/src/Google/Auth/OAuth2.php:364
你能告诉我我在这里犯的错误吗?
答案 0 :(得分:0)
这是我处理令牌事物的一些代码。实现此逻辑,如果您仍然遇到错误,请告诉我。
$ 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);
}