Google api php客户端提供“格式错误的身份验证代码”错误

问题描述 投票:4回答:1

所以我最近升级了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'];
}

每当我运行该代码时,它都会给出响应“无效授权,格式错误的验证代码”。

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

我基本上试图访问谷歌加配置文件的信息,所以我们可以通过谷歌加注册用户。

google-api-php-client
1个回答
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"

然后,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.