Hi Danial, Just tried replacing the method with OAuth2_jwt and we are doing good progress, because i think the authentication passed successfully.
I have the following error now: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/v201209"><requestId>0004d3788a92a0600ae5630d0000276f</requestId><serviceName>CampaignService</serviceName><methodName>get</methodName><operations>0</operations><responseTime>27</responseTime><units>0</units></ResponseHeader></soap:Header><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>[AuthenticationError.NOT_ADS_USER @ ; trigger:'<null>']</faultstring><detail><ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/cm/v201209"><message>[AuthenticationError.NOT_ADS_USER @ ; trigger:'<null>']</message><ApplicationException.Type>ApiException</ApplicationException.Type><errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AuthenticationError"><fieldPath></fieldPath><trigger><null></trigger><errorString>AuthenticationError.NOT_ADS_USER</errorString><ApiError.Type>AuthenticationError</ApiError.Type><reason>NOT_ADS_USER</reason></errors></ApiExceptionFault></detail></soap:Fault></soap:Body></soap:Envelope> Is there any chance to get this error because of the domain administration rights - how can check and verify them (is this the google analytics domain owner verification)? Thank you in advance, All the best, Georgi On Thursday, January 17, 2013 11:18:11 AM UTC+2, Danial Klimkin wrote: > > Hello Georgi, > > > From the stack trace I can see OAUTH2 method is used. You should use > OAUTH2_JWT instead. Please check this line in the configuration: > > :authentication => { > :method: OAUTH2_JWT > ... > > > Not related to the issue below, but require for the next step. Please make > sure you are signed up for a domain and have domain administration rights. > This is a pre-requisite for using JWT authorization. > > > -Danial, AdWords API Team. > > > On Wednesday, January 16, 2013 4:15:54 PM UTC+4, teamma...@gmail.comwrote: >> >> Hi Danial, >> >> Thanks for the quick reply, we've replaced the adwords initialization >> with the one you've suggested and we are having a progress, but still there >> is another error: >> >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/auth/oauth2_handler.rb:116:in >> >> `validate_credentials': Client id is not included in the credentials. >> (AdsCommon::Errors::AuthError) >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/auth/oauth2_handler.rb:148:in >> >> `create_token' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/auth/base_handler.rb:50:in >> >> `get_token' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/auth/oauth2_handler.rb:82:in >> >> `get_token' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/auth/oauth2_handler.rb:75:in >> >> `auth_string' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/savon_headers/oauth_header_handler.rb:45:in >> >> `generate_headers' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/savon_headers/base_header_handler.rb:75:in >> >> `prepare_request' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/savon_service.rb:103:in >> >> `block in execute_soap_request' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/savon-1.2.0/lib/savon/client.rb:129:in >> `yield_objects' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/savon-1.2.0/lib/savon/client.rb:122:in >> `process' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/savon-1.2.0/lib/savon/client.rb:84:in >> `block in request' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/savon-1.2.0/lib/savon/soap/request_builder.rb:56:in >> >> `call' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/savon-1.2.0/lib/savon/soap/request_builder.rb:56:in >> >> `request' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/savon-1.2.0/lib/savon/client.rb:86:in >> `request' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/savon_service.rb:101:in >> >> `execute_soap_request' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/savon_service.rb:81:in >> >> `execute_action' >> from >> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-adwords-api-0.8.0/lib/adwords_api/v201209/campaign_service.rb:21:in >> >> `get' >> >> The application now requires client id. We've tried to add >> :oauth2_client_id and the :oauth2_client_secret (didn't work either), but >> i'm not sure if this is the right direction. >> >> Let me know if you need further information, >> >> All the best, >> Georgi >> >> On Tuesday, January 15, 2013 2:04:53 PM UTC+2, Danial Klimkin wrote: >>> >>> Hello Georgi, >>> >>> >>> If you initialize the library with a hash, you need to make sure to >>> provide all required credentials. Make sure to include all required fields >>> like this: >>> >>> adwords = AdwordsApi::Api.new({ >>> :service => { >>> :environment => :PRODUCTION >>> }, >>> :library => { >>> :log_level => "DEBUG" >>> }, >>> :authentication => { >>> :method: OAUTH2_JWT >>> :oauth2_issuer: '12345...@developer.gserviceaccount.com' >>> :oauth2_secret: 'key_secret' >>> :oauth2_keyfile: '/path/to/key.p12' >>> :developer_token: '<dev_token>', >>> :client_customer_id: '123-456-7890' >>> } >>> }) >>> >>> >>> -Danial, AdWords API Team. >>> >>> On Monday, January 14, 2013 4:05:36 PM UTC+4, teamma...@gmail.com wrote: >>>> >>>> Hello everyone, >>>> >>>> We’ve recently started to use adwords api and now we are trying to >>>> automate few tasks. We’re using OAuth2 authentication and ruby. >>>> >>>> We’ve followed the example here >>>> https://code.google.com/p/google-api-ads-ruby/source/browse/adwords_api/examples/v201209/misc/use_oauth2_jwt.rb<https://code.google.com/p/google-api-ads-ruby/source/browse/adwords_api/examples/v201209/misc/use_oauth2.rb>to >>>> authenticate, the only difference is how we initialize the adwords api: >>>> >>>> adwords = AdwordsApi::Api.new({ >>>> >>>> :library => { >>>> >>>> :log_level => "DEBUG" >>>> >>>> }}) >>>> >>>> # option 1 and option 2 not modified from the example >>>> >>>> campaign_srv = adwords.service(:CampaignService, API_VERSION) >>>> >>>> >>>> We’ve downloaded the private key file and the path is set correctly and >>>> we’ve tried both options. This is the error we get: >>>> >>>> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/credential_handler.rb:65:in >>>> >>>> `set_credential': undefined method `[]=' for nil:NilClass (NoMethodError) >>>> >>>> from >>>> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/api.rb:103:in >>>> >>>> `block in authorize' >>>> >>>> from >>>> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/api.rb:102:in >>>> >>>> `each_pair' >>>> >>>> from >>>> /path/.rvm/gems/ruby-1.9.3-p327/gems/google-ads-common-0.9.0/lib/ads_common/api.rb:102:in >>>> >>>> `authorize' >>>> >>>> >>>> Let me know if you need further information, i would like to find out >>>> the possible reason for that error or if there is any error in our >>>> configuration or code? >>>> >>>> >>>> >>>> Thank you in advance for your time, >>>> >>>> Georgi >>>> >>> -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API Forum" group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en