2015-07-19 21 views
1

我需要你的幫助:谷歌的OAuth - Invalid_grant,得到refresh_token但沒有應用程序訪問

我使用谷歌AdWords API的PHP庫和Symfony2中集成它。我生成的URL來獲取Refresh_token,它似乎工作正常,我收到刷新令牌。但每次我想訪問API時,都會收到「invalid_grant」錯誤。

我檢查了我的gmail測試帳戶並找不到我的應用程序。

所以這是我做的:

我產生了訪問的URL,它的正常工作:

https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=4160XXXXX-7j6qpXXXXXXXXXXXXkctXXX.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%2F%2Fadcheck%2Fweb%2Fapp_dev.php%2Fapp%2Ftoken%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fadwords&access_type=offline&approval_prompt=force 

我點擊它,接受它,讓我的「AdWords網絡」應用程序可以訪問並管理我的Google AdWords帳戶。

谷歌然後重定向我到我REDIRECT_URI併發送refresh_token:

http://localhost/adcheck/web/app_dev.php/app/token/?code=4/ughxxxxxxxxxxxxxxxxxxxxxxxxxIZeF5yoMzI# 

但「AdWords網絡」應用程序未連接。儘管我獲得了成功的答案和刷新令牌,但我無法在我的Google帳戶應用列表中找到它。

任何人都可以幫助嗎?我很無奈,找不到什麼不對:/

回答

0

好吧,我發現了! Google不會返回刷新標記。 Google返回一個Access_token,然後可以用它來生成refresh_token。

$AdWordsUser->SetOAuth2Info(
     $OAuth2Handler->GetAccessToken(
      $AdWordsUser->GetOAuth2Info(), $code, $redirectUri)); 
$AdWordsUser->SetRefreshToken($AdWordsUser->GetOAuth2Info('refresh_token')); 

與使用$ redirectUri

$code = $this->get('request')get->('code'); 

當你第一次嘗試讓你的訪問令牌的refresh_token,谷歌把它添加到「我的應用」網站上的個人通過谷歌產生的ACCESS_TOKEN Google帳戶。 :)

相關問題