Google AdWords API自动化引发了AdsCommon :: Errors :: AuthError

时间:2015-01-06 18:46:00

标签: ruby-on-rails-4 oauth-2.0 google-oauth google-adwords adwords-api-v201109

我在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 个答案:

答案 0 :(得分:1)

请参阅:https://groups.google.com/forum/#!topic/adwords-api/1J8n4bUnyh4

  

如果您使用第三方lib获取访问权限并刷新令牌,则为您   不需要再次使用验证码(已经使用过,没有   更长的有效期。)

     

而是将刷新令牌直接传递给库:

     

token = {:access_token =>" AbCdEf",:refresh_token =>" gHiJkL",
  :issued_at =>(发出时间访问令牌),:expires_in => 3600}   adwords.authorize({:oauth2_token => token})

     

注意,您不需要提供已经请求的范围   你有omniauth。