Google Adwords API“发生错误:{”error“:”invalid_grant“}”

时间:2014-05-02 10:52:20

标签: php oauth google-adwords adwords-apiv201402

我整个上午都在爬网,试图解决这个问题。我正在尝试通过API访问Adwords测试帐户,但我一直收到“发生错误:{”error“:”invalid_grant“}”。我已经看到这是一个非常普遍的问题,所以如果我概述我已经一步一步做了什么,有人可以纠正我。希望!

  1. 创建了一个Google adwords帐户并设置了一个广告系列。

  2. 创建了MCC帐户。添加了Google adwords帐户并申请了API访问权限(待处理)。注释的API密钥,auth.ini的客户端ID。

  3. 创建了测试MCC帐户并添加了Google adwords帐户。 auth.ini的已注明客户端ID。

  4. 使用两个MCC帐户的Google帐户都进入API控制台并创建了一个新安装的应用程序应用程序。注意到所有的钥匙/代币。

  5. 下载了PHP代码示例和库。 Ran获取GetRefreshToken.php,授予对app(s)的访问权限,并注明auth.ini的刷新令牌

  6. 设置auth.ini,填充developerToken,userAgent,clientCustomerId,client_id,client_secret和refresh_token。

  7. 现在,我尝试使用测试MCC帐户API控制台和实时MCC帐户API控制台中的两套令牌和ID。两者都给我同样的错误。我已经尝试过多次重新生成所有令牌。

  8. 放弃并爬到StackOverFlow。

  9. 与Auth或我的developerToken令牌相关的invalid_grant消息是否尚未激活(确定它说我可以使用我的测试帐户)或者因为我没有设置任何计费?

2 个答案:

答案 0 :(得分:5)

就我而言,问题出在你名单的第5步;我在授予访问权限后从浏览器复制了授权代码,而不是在我将授权代码粘贴到GetRefreshToken.php后生成的刷新令牌。

答案 1 :(得分:2)

我很长一段时间都有同样的情况。 但解决方案非常简单。

授权Google后获得的代码不是您的刷新令牌。它只是一个访问令牌(我想。)

您必须将此代码添加到getrefreshtoken.php文件中的 GetAccessToken 的$ code变量函数中,它将返回实际的刷新令牌。

这解决了我的问题。