我正在尝试使用最新版本的google-api-php-client获取访问令牌(请查看此https://github.com/google/google-api-php-client),我正在关注此官方文档: https://developers.google.com/api-client-library/php/guide/aaa_oauth2_web
唯一的区别是我想使用服务Google_Service_Plus
,而不是Google_Service_Urlshortener
。
基本上我执行以下步骤:
$client
,指定了客户端ID,客户端密钥,开发人员密钥,范围和重定向URI(指向我的localhost Ubuntu 12.04 - PHP 5.3.10)。$plus
初始化Google Plus服务$client
。$client->createAuthUrl()
将用户重定向到验证网址。$_GET['code']
。$client->authenticate($_GET['code']);
,但谷歌服务器返回HTTP 400,我得到Google_Auth_Exception: Error fetching OAuth2 access token, message: 'invalid_request'
。 这里的流程打破了。
怎么了?
任何帮助将不胜感激。
提前致谢,
尼可罗马基。
答案 0 :(得分:8)
我创建了一个oauth2callback.php文件,遇到了这个问题。当我正确设置Google_Client时,问题就消失了。起初我只设置了clientId和secret。一旦我设置了redirectUri,我的代码就开始工作了。我不认为我需要设置redirectUri,因为我知道重定向已经发生(我在重定向页面上)。我认为这个答案可能会帮助其他人遇到类似的问题。
答案 1 :(得分:3)
一旦我为$ client设置了JSON配置文件,它对我有用。
实施例:$client->setAuthConfigFile(__dir__.'/../conf/client_secrets.json');