Hi,

You can check the status of your developer token in the AdWords web
interface.  Log in with your MCC credentials and go to "My Account" ->
"AdWords API Center".  Alerts at the top of the screen will let you
know if there are any problems with your tokens.

Best,
- Eric Koleda, AdWords API Team

On Aug 21, 9:08 pm, "[email protected]"
<[email protected]> wrote:
> I'm not sure what happened, but it looks like my token somehow got
> disabled or expired? I ran into the problem today as I was testing and
> everything was working yesterday, but then I tried today and nothing
> works anymore. I even went through the Adwords example code and
> modified to add my credentials and it still didn't work. Here is the
> code:
>
> #!/usr/bin/ruby
> #
> # Copyright 2009, Google Inc. All Rights Reserved.
> #
> # Licensed under the Apache License, Version 2.0 (the "License");
> # you may not use this file except in compliance with the License.
> # You may obtain a copy of the License at
> #
> #    http://www.apache.org/licenses/LICENSE-2.0
> #
> # Unless required by applicable law or agreed to in writing, software
> # distributed under the License is distributed on an "AS IS" BASIS,
> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> # See the License for the specific language governing permissions and
> # limitations under the License.
> #
> # This code sample illustrates how to fetch all the client accounts
> under an
> # MCC account, and then iteratively retrieves information about each
> account.
>
> require 'rubygems'
> gem 'soap4r', '= 1.5.8'
> require 'adwords4r'
>
> def main
>   begin
>     # AdWords::AdWordsCredentials.new will read a credentials file
> from
>     # ENV['HOME']/adwords.properties when called without parameters.
>     # The latest versioned release of the API will be assumed.
>     #
>     # Credentials can be either for the production or Sandbox
> environments.
>     # Production environment credentials overview:
>     #http://www.google.com/apis/adwords/developer/index.html
>     # Sandbox environment credentials overview:
>     #http://www.google.com/apis/adwords/developer/adwords_api_sandbox.html
>     #
>     # Instead of reading them from a file, the credentials can be
>     # specified inline as a hash:
>     #
>     # creds = {
>     #     'developerToken' => '[email protected]++usd',
>     #     'useragent' => 'Sample User Agent',
>     #     'password' => 'password',
>     #     'email' => '[email protected]',
>     #     'clientEmail' => '[email protected]',
>     #     'applicationToken' => 'IGNORED',
>     #     'environment' => 'SANDBOX',
>     # }
>     # adwords = AdWords::API.new(AdWords::AdWordsCredentials.new
> (creds))
>     adwords = AdWords::API.new(AdWords::AdWordsCredentials.new(
>       'useragent' => 'my user agent',
>       'developerToken' => '***mytoken***',
>       'applicationToken' => '***mytoken***,
>       'password' => 'mypass',
>       'email' => 'myemail,
>       'clientEmail' => 'myemail'
>     ))
>
>     # Clear out the clientEmail header temporarily so that we run
> under the
>     # context of the MCC user.
>     adwords.credentials.set_header('clientEmail', '')
>
>     account_srv = adwords.get_service(13, 'Account')
>     client_accounts = account_srv.getClientAccounts
>
>     if client_accounts.length > 0 then
>       client_accounts.each do |client_account|
>         # Set the clientEmail header to each account's login email so
> that API
>         # calls are made in the context of that account.
>         adwords.credentials.set_header('clientEmail', client_account)
>         account_info = account_srv.getAccountInfo.getAccountInfoReturn
>
>         puts 'Client Email: %s' % client_account
>         if ! account_info.descriptiveName.empty? then
>           puts 'Client Name: %s' % account_info.descriptiveName
>         end
>         puts 'Client ID: %s' % account_info.customerId
>         puts
>       end
>     else
>       puts 'There are no client accounts beneath this account.'
>     end
>
>   rescue Errno::ECONNRESET, SOAP::HTTPStreamError, SocketError => e
>     # This exception indicates a connection-level error.
>     # In general, it is likely to be transitory.
>     puts 'Connection Error: %s' % e
>     puts 'Source: %s' % e.backtrace.first
>
>   rescue AdWords::Error::UnknownAPICall => e
>     # This exception is thrown when an unknown SOAP method is invoked.
>     puts e
>     puts 'Source: %s' % e.backtrace.first
>
>   rescue AdWords::Error::ApiError => e
>     # This exception maps to receiving a SOAP Fault back from the
> service.
>     # The e.soap_faultstring_ex, e.code_ex, and potentially
> e.trigger_ex
>     # attributes are the most useful, but other attributes may be
> populated
>     # as well. To display all attributes, the following can be used:
>     #
>     # e.instance_variables.each do |var|
>     #   value = e.instance_variable_get(var)
>     #   if ! value.nil?
>     #     puts '%s => %s' % [var, value]
>     #   end
>     # end
>     puts 'SOAP Error: %s (code: %d)' % [e.soap_faultstring_ex,
> e.code_ex]
>     puts 'Trigger: %s' % e.trigger_ex unless e.trigger_ex.nil?
>     puts 'Source: %s' % e.backtrace.first
>
>   ensure
>     # Display API unit usage info. This data is stored as a class
> variable
>     # in the AdWords::API class and accessed via static methods.
>     # total_units() returns a running total of units used in the scope
> of the
>     # current program. last_units() returns the number used in the
> last call.
>     # puts
>     # puts '%d API units consumed total (%d in last call).' %
>     #     [adwords.total_units, adwords.last_units]
>   end
> end
>
> if __FILE__ == $0
>   # The adwords4r library can log all SOAP requests and responses to
> files.
>   # This is often useful for debugging purposes.
>   # To enable this, set the ADWORDS4R_DEBUG environement varaible to
> 'true'.
>   # This can be done either from your operating system environment or
> via
>   # code, as done below.
>   ENV['ADWORDS4R_DEBUG'] = 'false'
>
>   main
> end
>
> It gave me this error:
>
> SOAP Error: The developer token is invalid. (code: 42)
> Trigger: mytoken
> Source: grr.rb:64:in `main'
>
> Obviously I took my token out of this message. :)
>
> Anyone know what's up??
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"AdWords API Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/adwords-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to