使用 Google AdWords API 设置 oAuth
Setting up oAuth with the Google AdWords API
我正在尝试在使用 Google AdWords API.
的 Rails 项目上获得 Ruby
到目前为止,我按照 this guide 中的步骤做了什么:
- 我创建了 AdWords 管理器帐户。
- 我创建了一个属于 AdWords 管理器帐户的测试帐户。
- 我在我的 Rails 项目中设置了 Ruby 客户端库。
- 然后我尝试使用指南中的 example code 设置 OAuth2 身份验证。
然而,自从编写了指南(并且制作了指南的 video version)之后,界面似乎发生了变化。我能够创建客户端 ID client_secrets.json
文件或服务帐户 .json 文件。我能够导出这些并从 .
读取设置
- 我使用
OAUTH2_SERVICE_ACCOUNT
.json 文件添加了所需的设置。
现在,在尝试连接时,我得到了 AdwordsAPIException AuthenticationError.NOT_ADS_USER
。
因此我知道实际的 身份验证 有效。然而,授权没有。
如何启用 AdWords API 对来自我的 google 帐户的 oAuth 凭据的支持? Google 凭据控制台列出了许多您可以打开的 API,但 AdWords API 不在其中。 AdWords guide根本没有提到打开API,只告诉你创建一个新的Credential。
这是怎么回事?
不需要将Adwords API添加到您在Google云控制台中的项目中(它始终处于启用状态)-如错误消息所示,实际问题在于您的服务帐户 无权访问 任何 Adwords 帐户。
事实上,使用服务帐户对 Adwords API 进行身份验证的唯一方法是当您还使用 G Suite 域时(请参阅 the corresponding documentation, section "Prerequisites"。
如果您有 G Suite 域,则需要
在您的服务帐户密钥上启用 "G Suite Domain-wide Delegation"
将 Google 云项目的项目 ID 添加到您的 G Suite 域的授权 API 客户列表
使用您的服务帐户模拟您 G Suite 域中具有 Adwords 访问权限的任何用户
如您所见,这是一个非常复杂的过程。我的建议(由上述文章分享)是对具有 Adwords 访问权限的任何用户使用 OAuth2 installed application flow。这需要在您的端存储获得的刷新令牌,但比启用委托的服务帐户更灵活(并且可以说更安全)并且更容易设置。
我正在尝试在使用 Google AdWords API.
的 Rails 项目上获得 Ruby到目前为止,我按照 this guide 中的步骤做了什么:
- 我创建了 AdWords 管理器帐户。
- 我创建了一个属于 AdWords 管理器帐户的测试帐户。
- 我在我的 Rails 项目中设置了 Ruby 客户端库。
- 然后我尝试使用指南中的 example code 设置 OAuth2 身份验证。
然而,自从编写了指南(并且制作了指南的 video version)之后,界面似乎发生了变化。我能够创建客户端 ID client_secrets.json
文件或服务帐户 .json 文件。我能够导出这些并从 .
- 我使用
OAUTH2_SERVICE_ACCOUNT
.json 文件添加了所需的设置。
现在,在尝试连接时,我得到了 AdwordsAPIException AuthenticationError.NOT_ADS_USER
。
因此我知道实际的 身份验证 有效。然而,授权没有。
如何启用 AdWords API 对来自我的 google 帐户的 oAuth 凭据的支持? Google 凭据控制台列出了许多您可以打开的 API,但 AdWords API 不在其中。 AdWords guide根本没有提到打开API,只告诉你创建一个新的Credential。
这是怎么回事?
不需要将Adwords API添加到您在Google云控制台中的项目中(它始终处于启用状态)-如错误消息所示,实际问题在于您的服务帐户 无权访问 任何 Adwords 帐户。
事实上,使用服务帐户对 Adwords API 进行身份验证的唯一方法是当您还使用 G Suite 域时(请参阅 the corresponding documentation, section "Prerequisites"。
如果您有 G Suite 域,则需要
在您的服务帐户密钥上启用 "G Suite Domain-wide Delegation"
将 Google 云项目的项目 ID 添加到您的 G Suite 域的授权 API 客户列表
使用您的服务帐户模拟您 G Suite 域中具有 Adwords 访问权限的任何用户
如您所见,这是一个非常复杂的过程。我的建议(由上述文章分享)是对具有 Adwords 访问权限的任何用户使用 OAuth2 installed application flow。这需要在您的端存储获得的刷新令牌,但比启用委托的服务帐户更灵活(并且可以说更安全)并且更容易设置。