API returning AuthenticationError.OAUTH_TOKEN_HEADER_INVALID

216 views
Skip to first unread message

Alessandro Dias

unread,
Jan 12, 2015, 8:19:26 AM1/12/15
to adwor...@googlegroups.com

I'm using

  • devise
  • omniauth
  • omniauth-google-oauth2
  • google-adwords-api

I'm getting the token from oauth callback:

class OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def google_oauth2
    session[:token] = request.env["omniauth.auth"].credentials
    ...
  end
end

and following the example of adwords on rails to get api instance:

 def adwords_api
   @api ||= create_adwords_api
 end

 def create_adwords_api
   api = AdwordsApi::Api.new Rails.application.config_for(:adwords)

   token = session[:token]
   if token
     credentials = api.credential_handler
     credentials.set_credential :oauth2_token, token
     credentials.set_credential :client_customer_id, current_user.id
   end
   api
 end

but when I try to get campaigns, It returns an error: [AuthenticationError.OAUTH_TOKEN_HEADER_INVALID @ ; trigger:'<null>'

and based on the log, this is the url of request:
[2015-01-09T10:12:44.237172 #6481] DEBUG -- : SOAP request: https://adwords.google.com/api/adwords/cm/v201409/CampaignService

why this error happens and how can I fix?

Josh Radcliff (AdWords API Team)

unread,
Jan 12, 2015, 12:48:59 PM1/12/15
to adwor...@googlegroups.com
Hi,

That error indicates that the Authorization header in your request is malformed. Please log your SOAP requests and check that header to make sure it is formatted as specified here.

You might want to check out the Ruby library's create_ad_words_session_without_properties_file.rb example as well, since that shows how to create a session manually.

Cheers,
Josh, AdWords API Team
Reply all
Reply to author
Forward
0 new messages