简体   繁体   中英

AuthenticationError.OAUTH_TOKEN_INVALID

I am trying to access Google Adword's api through google's gem google-api-ads-ruby. I was able to oauth in perfectly fine and grabbed the access token, refresh token, and id_token fine. When I try to access the data it gives me the oauth token invalid error. I retrieved my access token and inputed it on this link and it returned me a valid result.

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=[TOKEN]

The code below is how I am trying to access the Report Definition Service.

config = {
  :authentication => {
      :method => 'OAuth2',
      :oauth2_client_id => @plugin.oauth_client_id,
      :oauth2_client_secret => @plugin.oauth_client_secret,
      :developer_token => @plugin.developer_token,
      :client_customer_id => @plugin.client_customer_id,
      :oauth2_token => {"access_token"=>ACCESSTOKEN,
                       "refresh_token"=>REFRESHTOKEN,
                       "issued_at"=>"2017-09-18T16:36:55.973-04:00",
                       "expires_in"=>3600,
                       "id_token"=>IDTOKEN,
                       :user_agent => 'Example'
                      },
  :service => {
    :environment => 'PRODUCTION'
  }
}
api = AdwordsApi::Api.new(config)
report_def_srv = api.service(:ReportDefinitionService, :v201708)
report_type = "ACCOUNT_PERFORMANCE_REPORT"

This code below causes the error

fields = report_def_srv.get_report_fields(report_type)

Why do I keep getting the oauth token is invalid error when it hasn't expired yet?

If the question is still actual..

Try to replace "expires_in"=>3600 field with "expires_at"=>"2017-09-18T17:36:55.973-04:00"

It helped to resolve the similar issue in my case.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM