2014-11-24 75 views
3

我試圖通過Gmail APIfecing「Google_Auth_Exception」 WROR獲取的OAuth2訪問令牌,消息:「invalid_client」錯誤

從谷歌獲取郵件,而接收令牌我收到此錯誤

後驗證Google_Client

致命錯誤:未捕獲的異常「Google_Auth_Exception」與消息「錯誤獲取的OAuth2訪問令牌,消息:‘在

我的代碼invalid_client’」是簡單的使用谷歌-API-PHP-客戶主機和我的代碼是如下

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

轉到您的開發人員控制檯以查找應用程序。同意屏幕確保填寫產品名稱和電子郵件。 – DaImTo 2014-11-25 08:03:57

+0

全部正確填充它在客戶端祕密重新生成幾次後正常工作,但在嘗試列出按鈕時再次出現錯誤$ massages = listMessages($ service,$ user_info-> email) ;它按摩(403)訪問未配置。 API未針對您的項目啓用,或者API密鑰上配置了per-IP或per-Referer限制,並且請求不符合這些限制。請使用Google Developers Console更新您的配置,我不明白它在開發者控制檯中要求的配置 – 2014-11-25 19:56:33

+0

轉到API並啓用Gmail-API和Google + API – DaImTo 2014-11-25 20:16:15

回答

15

我有同樣的問題,但我的解決辦法是extreamly容易令人沮喪。

當您在Google Developers Console 的API Credentials中複製「客戶端密鑰」時,它們會在「客戶端密鑰」後面添加一個空格。一定要刪除它!

$client_secret = "hf83nd93hd93j39dj9 ";<-- 
+0

在我的情況下,它們沒有空間...應該是總結配置錯誤在應用程序api – 2015-01-07 07:37:47

+0

@Mario M.烏爾偉大!!!!!謝謝 – Raj 2016-03-24 11:27:36

1

正如Mario M.解釋的,當您複製客戶端密鑰時還有一個額外的空間。你必須確保你做對了。

我得到了同樣的錯誤 - Error fetching OAuth2 access token, message: 'invalid_client',但在我的情況下,這是由於未驗證的域。因此,如果您正在爲Web應用程序或類似的東西創建憑據並收到相同的錯誤,

  1. 檢查有一個在客戶端的祕密到底有沒有額外的空間
  2. 確保您的域名通過驗證
+0

本地主機呢? – 2017-04-13 13:04:20

0

在我而言,我不得不設置客戶端密鑰文件

$client->setAuthConfigFile(WWW_ROOT . 'files\json\client_secret_google_api.json'); 

並解決了我的問題。希望它能幫助別人。

相關問題