Google AdWords API 授权提升 Ads Common::Errors::AuthError
Posted
技术标签:
【中文标题】Google AdWords API 授权提升 Ads Common::Errors::AuthError【英文标题】:Google AdWords API autorization raising AdsCommon::Errors::AuthError 【发布时间】:2015-01-06 18:46:00 【问题描述】:我在 Rails 应用程序中配置了 Google 登录,登录工作正常,但是当我尝试自动化 AdWords API 以获取令牌时,引发异常
AdsCommon::Errors::AuthError Authorization error occured: Authorization failed.
Server message:
"error" : "invalid_grant", "error_description" : "Code was already redeemed."
这是自动化的一部分
def google_oauth2_callback
api = AdwordsApi::Api.new(Rails.application.config_for(:adwords_api))
session[:token] = api.authorize \
oauth2_callback: user_omniauth_callback_url(:google_oauth2),
oauth2_verification_code: params[:code]
我用于登录: 设计+omniauth-google-oauth2
我还添加了 adwords 范围
【问题讨论】:
【参考方案1】:见:https://groups.google.com/forum/#!topic/adwords-api/1J8n4bUnyh4
如果您使用 3rd 方库来获取访问和刷新令牌,您 不需要再次使用验证码(已经使用过,没有 有效期更长)。
相反,将刷新令牌直接传递给库:
token = :access_token=>"AbCdEf", :refresh_token=>"gHiJkL", :issued_at=>(发布时间访问令牌), :expires_in=>3600 adwords.authorize(:oauth2_token => token)
请注意,您不需要提供范围,因为它已经由 你有omniauth。
【讨论】:
好的,但是我如何获得access_token
和refresh_token
?通过adwords on rails 示例,我使用code
返回回调url 的参数来授权api以上是关于Google AdWords API 授权提升 Ads Common::Errors::AuthError的主要内容,如果未能解决你的问题,请参考以下文章
使用 suds 在 Python 中使用 OAuth2 进行 Google Adwords API 身份验证
google adwords api 与 google-adwords-api gem
与链接到 Google Adwords 帐户的 Google Analytics API 相比,Google Adwords API 报告可以获得多少?