【发布时间】:2019-08-17 06:44:51
【问题描述】:
我正在尝试开发一个 ruby 脚本来使用服务帐户凭据查询 Google Adwords API。我知道 json 凭证文件在另一个不是 ruby 的脚本中工作,但我无法在这个 ruby 脚本中获得过去的授权。我找不到任何使用这种模式的例子。我不想使用OAuth2。我知道这个脚本没有很好地开发,但我只是想了解基础知识。我在这里做错了什么?
我的公司有一个 G Suite 帐户,我拥有完整的管理员权限。
这是我的代码:
#!/usr/bin/ruby
require 'googleauth'
require 'fileutils'
require 'adwords_api'
API_VERSION = :v201809
scopes = ["https://www.googleapis.com/auth/adwords"]
credential_file = File.open('credentials/adwords-production.json')
prn = "adwords@mycompany.com"
authorizer = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: credential_file, scope: scopes, prn: prn)
def get_report_fields(report_type)
adwords = AdwordsApi::Api.new
report_def_srv = adwords.service(:ReportDefinitionService, API_VERSION)
# Get report fields.
fields = report_def_srv.get_report_fields(report_type)
if fields
puts "Report type '%s' contains the following fields:" % report_type
fields.each do |field|
puts ' - %s (%s)' % [field[:field_name], field[:field_type]]
puts ' := [%s]' % field[:enum_values].join(', ') if field[:enum_values]
end
end
end
begin
report_type = 'ACCOUNT_PERFORMANCE_REPORT'
get_report_fields(report_type)
end
【问题讨论】:
-
好像你声明了
authorizer,但从不使用。
标签: ruby google-ads-api