我正在尝试通过gmail api从Google获取邮件
在收到令牌后验证Google_Client时我收到此错误
致命错误:未捕获的异常'Google_Auth_Exception',上面显示消息'错误提取OAuth2访问令牌,消息:'invalid_client''
我的代码很简单,使用google-api-php-client-master,我的代码如下
require_once('config.php');
require_once 'autoload.php';
$client = new Google_Client();
$client->setScopes(array(
'https://www.googleapis.com/auth/plus.login',
'profile',
'email',
'openid',
'https://www.googleapis.com/auth/gmail.readonly',
'https://mail.google.com/',
));
$client->setApplicationName($config->social['google']->app_name);
$client->setClientId($config->social['google']->client_id);
$client->setClientSecret($config->social['google']->client_secret);
$client->setRedirectUri($config->social['google']->Redirect_URI);
$client->setDeveloperKey($config->social['google']->api_key); // API key
$gclient='';
print_r($_GET);
$token=new stdclass;
if(!isset( $_SESSION['google_token']))
{
$gclient=$client->authenticate($_GET['code']);//error occurs hare
$_SESSION['gclient']=$gclient;
if($gclient)
{
$_SESSION['google_token'] = $client->getAccessToken();
}
print_r($gclient);
}
我已经多次检查过我的凭证,但它们都是正确的
有人请帮我吧
答案 0 :(得分:15)
我遇到了同样的问题,但我的解决方案极其容易且令人沮丧。
当您在Google Developers Console 上复制API凭据中的“客户端密码”时,他们会在“客户端密码”之后添加一个空格。一定要删除它!
$client_secret = "hf83nd93hd93j39dj9 ";<--
答案 1 :(得分:1)
正如Mario M.解释的那样,当你复制Client Secret时还有一个额外的空间。你必须确保你做对了。
我收到同样的错误 - Error fetching OAuth2 access token, message: 'invalid_client'
,但在我的情况下,这是由于未经验证的域名。因此,如果您正在为Web应用程序或类似的东西创建凭据并收到相同的错误;
答案 2 :(得分:0)
在我的情况下,我必须设置客户端密钥文件
mvn -X <your_goals>
这解决了我的问题。希望它可以帮到某人。