我在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范围
答案 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。