Google_Auth_Exception:刷新OAuth2令牌时出错

时间:2017-03-22 18:18:31

标签: php google-plus-signin

我正在尝试使用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

你能告诉我我在这里犯的错误吗?

1 个答案:

答案 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);

        }