无法使 GetRefreshToken.php 与 Adwords API 一起使用

Posted

技术标签:

【中文标题】无法使 GetRefreshToken.php 与 Adwords API 一起使用【英文标题】:Cannot make GetRefreshToken.php work with Adwords API 【发布时间】:2013-12-12 14:47:37 【问题描述】:

我是 Adwords API 的新手,如果我没有清楚地描述我的问题,请告诉我。我在互联网上搜索,人们确实和我有类似的问题,但他们都没有给出适合我的解决方案。 我和thread 的 OP 几乎有同样的问题。唯一的区别是我正在使用测试帐户(实时 MCC 帐户的开发人员令牌正在等待中)。在 auth.ini 中,我有以下信息集,

developerToken = "PENDING_DEVELOPER_TOKEN_OF_THE_LIVE_ACCOUNT"
userAgent = "COMPANY_NAME"
clientCustomerId = "CUSTOMER_ID_OF_TEST_ACCOUNT"

client_id = "CLIENT_ID_OF_TEST_ACCOUNT"
client_secret = "CLIENT_SECRET_OF_TEST_ACCOUNT"

所有其他信息都保留为默认值。

我按照tutorial 获取了客户端 ID 和客户端密码。当我在 Google Cloud Console 中注册应用程序时,我登录了测试帐户电子邮件,这对 id 和 secret 与测试帐户相关联。我还使用实时 MCC 帐户进行了测试,并生成了另一对 id 和 secret,但它们都不起作用。当我在浏览器中运行 GetRefreshToken.php 时,我收到如下错误消息:

您的 OAuth2 凭据不正确。请参阅 GetRefreshToken.php 示例。 “错误”:“无效请求”

我一整天都在用头撞桌子,仍然无法弄清楚我在配置方面做错了什么。任何见解都值得赞赏。非常感谢!

【问题讨论】:

【参考方案1】:

这些是设置 adwords api 的步骤:

    下载客户端库(https://github.com/googleads/googleads-php-lib)

    在实时 MCC 帐户中注册您的应用。登录https://cloud.google.com/console。在 Api's & auth -> credentials 下,单击“创建新客户端 ID”并确保选择“已安装的应用程序选项”。重定向 uri 将自动指向您的本地主机。因此,请确保您在 localhost 中运行您的应用程序

    现在创建一个测试 MCC 帐户。

    在您的测试 MCC 帐户中,单击“创建帐户”。在创建帐户表单中,有一个邀请用户的选项。在此处输入您的测试帐户的电子邮件地址。请注意,此帐户不应已与 adwords 帐户相关联。

    一旦您接受邀请和一切,您的测试帐户将与您的测试 MCC 帐户相关联。它将显示在您的 MCC 测试帐户信息中心的表格中。

    在 auth.ini 文件中,使用您的真实账户中的开发者令牌、客户端 ID 和客户端密码。 clientCustomerId 应该是您的测试帐户的 id。

    现在从命令行运行 GetRefreshToken.php 文件。将输出 url 复制并粘贴到浏览器中。然后登录到您的测试帐户。系统将要求您接受您的应用访问 adwords 帐户的权限。

    一旦您接受,您将被重定向到您的应用,并且该 url 将有一个“代码”参数。

    将代码复制并粘贴回您的命令行中,它将要求您提供授权代码。将显示您的刷新令牌。

【讨论】:

感谢您的回答,尽管我在发布问题几天后就知道了。只是一个小的更正:如果您想使用测试帐户进行测试(您只能在开发人员令牌获得批准之前使用测试帐户进行测试),您应该使用测试帐户中的客户端 ID 和客户端密码,而不是真实帐户,否则会产生“unauthorized_client”错误。一旦你更新它,我会接受你的答案。干杯

以上是关于无法使 GetRefreshToken.php 与 Adwords API 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

sklearn:无法使 OneHotEncoder 与 Pipeline 一起使用

无法使 python split() 与 £ [重复] 一起使用

无法使 Xdebug 与 Eclipse PDT 一起工作

无法使 OpenMP 与 CodeBlocks 和 GFortran 一起工作

与 Webpack 捆绑时,无法使 Tether 为 Bootstrap 4 工作

无法使我的状态栏颜色与 SwiftUI 中的导航栏颜色匹配