Google api php客户端提供了#34;格式错误的身份验证代码"错误

时间:2018-05-09 22:11:19

标签: google-api-php-client

所以我最近升级了用于PHP的google api客户端,我一直无法通过身份验证并给我一个令牌。它曾经与旧库一起工作,但是这个通过composer安装的新库给了我几个问题。这是我的参考代码:

if (!empty($gp_auth_code) {
    $client = new Google_Client();
    $client->setAuthConfig('<path to client.json file>');

    $client->addScope(Google_Service_Oauth2::PLUS_LOGIN);

    $client->setRedirectUri('<redirect URI>');


    $token = $client->fetchAccessTokenWithAuthCode($gp_auth_code);

    $gp_access_token = $token['access_token'];
    $gp_refresh_token = $client->refreshToken($token)['refresh_token'];
}

每当我运行该代码时,它会向我提供响应&#34;无效授权,格式错误的身份验证代码。&#34;

我做错了吗? $ gp_auth_code用于工作得很好,json文件的路径肯定有效,重定向URI肯定也存在。任何帮助将不胜感激。

我基本上试图访问google plus个人资料信息,因此我们可以通过google plus注册用户。

1 个答案:

答案 0 :(得分:0)

我正在使用Node.js googleapis客户端库,这是我的情况:

URL哈希片段中的授权代码由encodeURIComponent api编码,因此,如果您传递此代码以请求访问令牌。它将引发错误:

{ "error": "invalid_grant", "error_description": "Malformed auth code." }

所以我用decodeURIComponent对授权码进行解码。

decodeURIComponent('4%2F_QCXwy-PG5Ub_JTiL7ULaCVb6K-Jsv45c7TPqPsG2-sCPYMTseEtqHWcU_ynqWQJB3Vuw5Ad1etoWqNPBaGvGHY')

解码后,授权码为:

"4/_QCXwy-PG5Ub_JTiL7ULaCVb6K-Jsv45c7TPqPsG2-sCPYMTseEtqHWcU_ynqWQJB3Vuw5Ad1etoWqNPBaGvGHY"

然后,一切正常。