我需要你的帮助:
我正在使用Google AdWords API PHP库并将其集成到Symfony2中。我生成了获取Refresh_token的URL,它似乎工作正常,我收到刷新令牌。但每次我想访问API时,都会出现“invalid_grant”错误。
我检查了我的gMail-Test帐户,找不到我的应用程序。
这就是我的所作所为:
我生成了Access-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帐户。
然后,Google会将我重定向到我的Redirect_uri并发送refresh_token:http://localhost/adcheck/web/app_dev.php/app/token/?code=4/ughxxxxxxxxxxxxxxxxxxxxxxxxxIZeF5yoMzI#
但“AdWords网络”应用未连接。我在Google帐户应用列表中找不到它,但我得到了一个成功的答案和刷新令牌。
任何人都可以提供帮助?我很无奈,找不到什么错误:/
答案 0 :(得分:0)
好的,我发现了! Google不会返回刷新令牌。 Google会返回一个Access_token,然后可以用它来生成refresh_token。
$AdWordsUser->SetOAuth2Info(
$OAuth2Handler->GetAccessToken(
$AdWordsUser->GetOAuth2Info(), $code, $redirectUri));
$AdWordsUser->SetRefreshToken($AdWordsUser->GetOAuth2Info('refresh_token'));
使用$ redirectUri
生成的Google生成的Access_token$code = $this->get('request')get->('code');
当您第一次尝试通过访问令牌获取refresh_token时,Google会将其添加到"我的应用"您个人Google帐户上的网站。 :)