我整个上午都在爬网,试图解决这个问题。我正在尝试通过API访问Adwords测试帐户,但我一直收到“发生错误:{”error“:”invalid_grant“}”。我已经看到这是一个非常普遍的问题,所以如果我概述我已经一步一步做了什么,有人可以纠正我。希望!
创建了一个Google adwords帐户并设置了一个广告系列。
创建了MCC帐户。添加了Google adwords帐户并申请了API访问权限(待处理)。注释的API密钥,auth.ini的客户端ID。
创建了测试MCC帐户并添加了Google adwords帐户。 auth.ini的已注明客户端ID。
使用两个MCC帐户的Google帐户都进入API控制台并创建了一个新安装的应用程序应用程序。注意到所有的钥匙/代币。
下载了PHP代码示例和库。 Ran获取GetRefreshToken.php,授予对app(s)的访问权限,并注明auth.ini的刷新令牌
设置auth.ini,填充developerToken,userAgent,clientCustomerId,client_id,client_secret和refresh_token。
现在,我尝试使用测试MCC帐户API控制台和实时MCC帐户API控制台中的两套令牌和ID。两者都给我同样的错误。我已经尝试过多次重新生成所有令牌。
放弃并爬到StackOverFlow。
与Auth或我的developerToken令牌相关的invalid_grant消息是否尚未激活(确定它说我可以使用我的测试帐户)或者因为我没有设置任何计费?
答案 0 :(得分:5)
就我而言,问题出在你名单的第5步;我在授予访问权限后从浏览器复制了授权代码,而不是在我将授权代码粘贴到GetRefreshToken.php后生成的刷新令牌。
答案 1 :(得分:2)
我很长一段时间都有同样的情况。 但解决方案非常简单。
授权Google后获得的代码不是您的刷新令牌。它只是一个访问令牌(我想。)
您必须将此代码添加到getrefreshtoken.php文件中的 GetAccessToken 的$ code变量函数中,它将返回实际的刷新令牌。
这解决了我的问题。