【问题标题】:Google Adwords API "An error has occurred: { "error" : "invalid_grant" }"Google Adwords API“发生错误:{“error”:“invalid_grant”}”
【发布时间】:2014-06-19 00:49:31
【问题描述】:

我整个上午都在上网,试图弄清楚这一点。我正在尝试通过 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 代码示例和库。然获取 GetRefreshToken.php,授予对应用程序的访问权限并记录 auth.ini 的刷新令牌

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

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

  8. 放弃并爬到 StackOverFlow。

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

【问题讨论】:

    标签: php oauth google-ads-api


    【解决方案1】:

    在我的情况下,问题出在您列表中的第 5 步;我在授予访问权限后从浏览器复制了授权代码,而不是在我将授权代码粘贴到那里后由 GetRefreshToken.php 生成的刷新令牌。

    【讨论】:

      【解决方案2】:

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

      授权谷歌后得到的代码不是你的刷新令牌。它只是一个访问令牌(我猜。)

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

      这解决了我的问题。

      【讨论】:

        【解决方案3】:

        请务必注意,SDK 旨在通过 PHP-Cli 使用。所以请不要通过浏览器使用它。如果您仍然通过注释掉return 行来运行它,您将遇到更多问题来评论每个文件:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-24
          • 1970-01-01
          • 1970-01-01
          • 2020-03-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多