我刚刚安装了Google API 2.0,设置了我的应用程序,我正在尝试授权用户,但我一直收到此错误:
array(2) {
["error"]=>
string(13) "invalid_grant"
["error_description"]=>
string(20) "Malformed auth code."
}
为了创建授权链接,我在$oGoogleClient->createAuthUrl();
中使用函数\Google_Client
它将我带到授权页面,然后返回到我的授权页面,其中包含url中的代码,如下所示:
http://example.com/authorize/?code=4/AABBv8nQ5N4mqrOTANDphl_L4ROPnzK6yckffDu-dnlIJGE9ZOcXo9eehUVbzbExbMuhCZQAb5zu9_BIS-VI4E4#
为了处理这个请求,我使用了qazxsw poi中的api函数qazxsw poi
起初我认为这是因为代码末尾的$oGoogleClient->fetchAccessTokenWithAuthCode($sCode);
,因为PHP只获得代码参数,直到该hashtag之前,所以我硬编码进行测试,但结果与Malformed Auth Code的错误信息相同。
关于如何解决这个问题的任何想法?
更新:我已将代码移动到其他服务器,它将正确授权代码并检索访问令牌。我想它应该是服务器内部的东西,但我无法弄清楚是什么!
我正在使用\Google_Client
googleapis客户端库,这是我的情况:
url散列片段中的授权代码由#
api编码,因此如果您传递此代码以请求访问令牌。它会抛出一个错误:
Node.js
所以我使用encodeURIComponent
来解码授权码。
{ "error": "invalid_grant", "error_description": "Malformed auth code." }
解码后,授权码为:
decodeURIComponent