Hello All,

Any special configuration required for Running OAuth 1.0a running 
succesfully?
I am trying to run one of my report download code, but it is giving error :

*Error Message: <eye3-stackless title='AuthServer User Error 
OAUTH_TOKEN_HEADER_INVALID'/> 
AuthenticationError.OAUTH_TOKEN_HEADER_INVALID @ ; trigger:'<null>'; 
errorDetails:message=Invalid Header Service[ReportInfoService.get]*
*
*
Please note : It is only has error from few server only. This same file is 
working on my localhost setup and also from two of my server.

Thanks,
chirag

On Monday, April 2, 2012 6:41:27 PM UTC+5:30, Anash P. Oommen wrote:
>
> Hi Simon,
>
> Nice to know. If you have 2-legged authentication turned on, then you need 
> to generate an application-specific password as discussed at 
> http://adwordsapi.blogspot.com/2011/02/authentication-changes-with-2-step.html
> .
>
> Cheers,
> Anash P. Oommen,
> AdWords API Advisor.
>
> On Monday, 2 April 2012 14:29:17 UTC+5:30, baynezy wrote:
>>
>> Anash,
>> Thanks very much for your help on this. I think I have solved the 
>> problem, I think it is because my Gmail account has the 2-legged 
>> authentication turned on. I am using a different account now and it is now 
>> working.
>>
>> Thanks.
>>
>> Simon
>>
>> On Friday, 30 March 2012 05:30:45 UTC+1, Anash P. Oommen wrote:
>>>
>>> Hi Simon,
>>>
>>> v201101 got sunset last month. Try v201109.GetCampaigns as the command 
>>> line version. (Or in general, apiversion.codeexamplename as command line 
>>> argument). I'll update the video appropriately or leave comments on the 
>>> youtube video.
>>>
>>> Cheers,
>>> Anash
>>>
>>> On Thursday, 29 March 2012 21:23:29 UTC+5:30, baynezy wrote:
>>>>
>>>> Anash,
>>>> Thanks very much this is starting to come together. I have set up the 
>>>> Web.config as requested and I am trying to run 
>>>> http://code.google.com/p/google-api-adwords-dotnet/source/browse/trunk/examples/adwords/csharp/v201109/BasicOperations/GetCampaigns.cs.
>>>>  
>>>> I am adding adding a command line argument of 'v201101.GetAllCampaigns' as 
>>>> you specify in your YouTube video 
>>>> http://www.youtube.com/watch?v=XRqbqtsGO_g&feature=player_embedded. 
>>>> However, every time I run it it just list the help text to the console. It 
>>>> is like it does not see he command line arguments. I also compiled the exe 
>>>> and ran it from the command line with 'v201101.GetAllCampaigns' and it 
>>>> also 
>>>> just outputs the help text. It is like I am having a bad brain moment, and 
>>>> cannot see why this is failing. I would appreciate some thoughts on what I 
>>>> am doing wrong if you can think of something obvious.
>>>>
>>>> On Thursday, 29 March 2012 13:32:16 UTC+1, Anash P. Oommen wrote:
>>>>>
>>>>> Hi Simon,
>>>>>
>>>>> Almost forgot to mention: since you are making calls to the sandbox, 
>>>>> you need to initialize the sandbox and use the clientCustomerIds in it.
>>>>>
>>>>> 1. In your Web.config, you should have email/password as your gmail 
>>>>> email/password. Comment out clientCustomerId.
>>>>> 2. Call GetCampaigns.cs. Reference example is at  
>>>>> http://code.google.com/p/google-api-adwords-dotnet/source/browse/trunk/examples/adwords/csharp/v201109/BasicOperations/GetCampaigns.cs.
>>>>>  
>>>>> This will initialize your sandbox.
>>>>> 3. Call GetAccountHiearchy.cs. Example here:  
>>>>> http://code.google.com/p/google-api-adwords-dotnet/source/browse/trunk/examples/adwords/csharp/v201109/AccountManagement/GetAccountHierarchy.cs.
>>>>>  
>>>>> This will return the sandbox accounts that were created for you.
>>>>> 4. Copy one of those customerIds into your 
>>>>> web.config's clientCustomerId key, and uncomment the key.
>>>>> 5. Run any code example.
>>>>>
>>>>> Anash
>>>>>
>>>>> On Thursday, 29 March 2012 17:57:07 UTC+5:30, Anash P. Oommen wrote:
>>>>>>
>>>>>> Hi Simon,
>>>>>>
>>>>>> I see... let's get a code example running in that case...
>>>>>>
>>>>>> The easiest approach is as follows:
>>>>>>
>>>>>> 1. Make sure your Web.config looks exactly as follows: 
>>>>>> http://code.google.com/p/google-api-adwords-dotnet/source/browse/trunk/examples/adwords/csharp/App.config.
>>>>>>  
>>>>>> In case you have other stuff in your Web.config, you need to merge the 
>>>>>> two.
>>>>>>
>>>>>> 2. Enter your MCC email, password, clientCustomerId, developerToken 
>>>>>> in your Web.config.
>>>>>> 3. In your code, do
>>>>>>
>>>>>> AdWordsUser user = new AdWordsUser();// this loads all configs from 
>>>>>> your Web.Config
>>>>>> CampaignService service = (CampaignService) 
>>>>>> user.GetService(AdWordsService.v201109.CampaignService);
>>>>>> // Build your campaign, operation, do service.mutate(). Refer to the 
>>>>>> examples folder in the downloaded zip for various code examples.
>>>>>>
>>>>>> 4. Run your website. If you face any issues, let me know, along with 
>>>>>> the error you are facing.
>>>>>>
>>>>>> Cheers,
>>>>>> Anash
>>>>>>
>>>>>> On Thursday, 29 March 2012 17:21:25 UTC+5:30, baynezy wrote:
>>>>>>>
>>>>>>> Anash,
>>>>>>> Again thank you for your quick response. I am building a web 
>>>>>>> application that when new items are added to our system we can 
>>>>>>> potentially 
>>>>>>> automatically add a new Campaign to the our AdWords account and then 
>>>>>>> subsequently new AdGroups, Ads and Keywords. I am at the early stages 
>>>>>>> really learning the capabilities of the API and I am having a few 
>>>>>>> problems 
>>>>>>> getting going. I downloaded the the .Net client library from here 
>>>>>>> http://code.google.com/p/google-api-adwords-dotnet/ and I am using 
>>>>>>> that as the basis of starting my own proof of concept project. Mainly 
>>>>>>> my 
>>>>>>> issues are compounded by the fact that all the examples I can find are 
>>>>>>> a 
>>>>>>> mix of different versions and so I am a little unclear on how to get 
>>>>>>> going.
>>>>>>>
>>>>>>> I think what I really need help with is how to get the AdWordsUser 
>>>>>>> authenticated in a way that I can the access the API from then on with 
>>>>>>> no 
>>>>>>> challenge. I have no requirement to use OAuth as this will be an 
>>>>>>> internal 
>>>>>>> service using just our company AdWords account.
>>>>>>>
>>>>>>> What I have so far is based on a combination of this Java example 
>>>>>>> http://code.google.com/apis/adwords/docs/first-request.html and 
>>>>>>> this article you wrote 
>>>>>>> http://code.google.com/p/google-api-adwords-dotnet/wiki/HowToUseAdWordsUser
>>>>>>>
>>>>>>> Here is my code:-
>>>>>>>
>>>>>>>  public ActionResult Create()
>>>>>>> {
>>>>>>> var headers = new Dictionary<string, string>
>>>>>>>                {
>>>>>>>                {"CompanyName", "MyCompany.com"},
>>>>>>> {"Email", "[email protected]"},
>>>>>>> {"Password", "password"},
>>>>>>> {"DeveloperToken", " myemail @gmail.com++USD"}
>>>>>>>                };
>>>>>>> var user = new AdWordsUser(headers);
>>>>>>> var service = 
>>>>>>> (CampaignService)user.GetService(AdWordsService.v201109.CampaignService,
>>>>>>>  "
>>>>>>> https://sandbox.google.com";);
>>>>>>> var budget = new Budget
>>>>>>>  {
>>>>>>>  period = BudgetBudgetPeriod.DAILY,
>>>>>>>  amount = new Money(),
>>>>>>>  deliveryMethod = BudgetBudgetDeliveryMethod.STANDARD
>>>>>>>  };
>>>>>>>
>>>>>>> var campaign = new Campaign
>>>>>>>    {
>>>>>>>    name = "Simon Campaign",
>>>>>>>    status = CampaignStatus.PAUSED,
>>>>>>>    biddingStrategy = new ManualCPC(),
>>>>>>>    budget = budget
>>>>>>>    };
>>>>>>> var operation = new CampaignOperation {operand = campaign, @operator 
>>>>>>> = Operator.ADD};
>>>>>>> var operations = new[] { operation };
>>>>>>> var result = service.mutate(operations);
>>>>>>>
>>>>>>> return View();
>>>>>>>
>>>>>>> This is an ASP.NET MVC 3 web application, when executing the code 
>>>>>>> above I get an AuthTokenException. When I dig into the error it is 
>>>>>>> because 
>>>>>>> I am getting an System.Net.WebException {"The remote server returned an 
>>>>>>> error: (403) Forbidden."}. I get exactly the same response when I 
>>>>>>> remove 
>>>>>>> the second argument from the GetService call on AdWordsUser.
>>>>>>>
>>>>>>> If you could point me in the right direction I would be eternally 
>>>>>>> grateful.
>>>>>>>
>>>>>>> On Thursday, 29 March 2012 12:20:14 UTC+1, Anash P. Oommen wrote:
>>>>>>>>
>>>>>>>> Hi Simon,
>>>>>>>>
>>>>>>>> AFAIK, OAuth doesn't present a Captcha challenge, ClientLogin API 
>>>>>>>> does. Sounds like a misconfiguration to me. OAuth 1.0a access tokens 
>>>>>>>> don't 
>>>>>>>> expire, so you need to get the user to enter the credentials once to 
>>>>>>>> generate an accessToken, save it, and then keep reusing it for future 
>>>>>>>> requests. The other option is to link the client account under your 
>>>>>>>> MCC, 
>>>>>>>> and use your credentials to generate AuthTokens. That way, you won't 
>>>>>>>> have 
>>>>>>>> to ask for your client's credentials at all, but the linking process 
>>>>>>>> is 
>>>>>>>> manual.
>>>>>>>>
>>>>>>>> Could you provide some more details of your application? E.g. is it 
>>>>>>>> a web application?
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Anash P. Oommen,
>>>>>>>> AdWords API Advisor.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thursday, 29 March 2012 16:31:31 UTC+5:30, baynezy wrote:
>>>>>>>>>
>>>>>>>>> Anash,
>>>>>>>>> Thanks very much for your help on this. I think I have gone down 
>>>>>>>>> the
>>>>>>>>> wrong path here. The OAuth version of the API presents me with a
>>>>>>>>> CAPTCH challenge that I need to forward to the user. However, I am 
>>>>>>>>> not
>>>>>>>>> creating a client application for users to manage their AdWords
>>>>>>>>> accounts where this process makes perfect sense as I would not 
>>>>>>>>> want to
>>>>>>>>> store their account credentials. However, I am building an 
>>>>>>>>> integration
>>>>>>>>> with my application so I can programmatically create campaigns,
>>>>>>>>> adgroups, etc. and this CAPTCHA challenge makes this not feasible 
>>>>>>>>> as
>>>>>>>>> this will not be in response to a user action but an automated
>>>>>>>>> process. Is there a way to interact with the API where I can use my
>>>>>>>>> credentials that I know, without having to deal with manually
>>>>>>>>> authenticating?
>>>>>>>>>
>>>>>>>>> Thanks again.
>>>>>>>>>
>>>>>>>>> Simon Baynes 
>>>>>>>>>
>>>>>>>>> On Thursday, March 29, 2012 10:04:12 AM UTC+1, Anash P. Oommen 
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Simon,
>>>>>>>>>>
>>>>>>>>>> There are couple more pieces to getting OAuth to work on an 
>>>>>>>>>> ASP.NET website.
>>>>>>>>>>
>>>>>>>>>> 1. There's some initialization code that should go in your 
>>>>>>>>>> Global.asax. :  
>>>>>>>>>> http://code.google.com/p/google-api-adwords-dotnet/source/browse/trunk/examples/adwords/csharp/oauth/Global.asax.cs
>>>>>>>>>>  
>>>>>>>>>> 2. There should be some mechanism to trigger the OAuth signup, as 
>>>>>>>>>> shown here:
>>>>>>>>>>
>>>>>>>>>> http://code.google.com/p/google-api-adwords-dotnet/source/browse/trunk/examples/adwords/csharp/oauth/GetAllCampaigns.aspx.cs#58
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>> Hope this helps: Let me know if you have more questions.
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>> Anash P. Oommen,
>>>>>>>>>> AdWords API Advisor.
>>>>>>>>>>
>>>>>>>>>> On Wednesday, 28 March 2012 20:09:13 UTC+5:30, baynezy wrote:
>>>>>>>>>>>
>>>>>>>>>>> I am trying (with not much luck) to access the Google AdWords 
>>>>>>>>>>> API using the .Net Client 
>>>>>>>>>>> Library<http://code.google.com/p/google-api-adwords-dotnet/>to 
>>>>>>>>>>> access their 
>>>>>>>>>>> SandBox <http://code.google.com/apis/adwords/docs/sandbox.html>API.
>>>>>>>>>>>
>>>>>>>>>>> Here is my code:-
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>             // create campaign
>>>>>>>>>>>             var campaign = new Campaign
>>>>>>>>>>>                                {
>>>>>>>>>>>                                    name = "Simon's Campaign",
>>>>>>>>>>>                                    status = 
>>>>>>>>>>> CampaignStatus.ACTIVE,
>>>>>>>>>>>                                    servingStatus = 
>>>>>>>>>>> ServingStatus.SERVING,
>>>>>>>>>>>                                    budget = new Budget
>>>>>>>>>>>                                                 {
>>>>>>>>>>>                                                     period = 
>>>>>>>>>>> BudgetBudgetPeriod.DAILY,
>>>>>>>>>>>                                                     amount = new 
>>>>>>>>>>> Money
>>>>>>>>>>>                                                                 
>>>>>>>>>>>  {
>>>>>>>>>>>                                                                 
>>>>>>>>>>>      microAmount = 100000
>>>>>>>>>>>                                                                 
>>>>>>>>>>>  },
>>>>>>>>>>>                                                     
>>>>>>>>>>> deliveryMethod = BudgetBudgetDeliveryMethod.STANDARD
>>>>>>>>>>>                                                 },
>>>>>>>>>>>                                    adServingOptimizationStatus = 
>>>>>>>>>>> AdServingOptimizationStatus.OPTIMIZE,
>>>>>>>>>>>                                    frequencyCap = new 
>>>>>>>>>>> FrequencyCap
>>>>>>>>>>>                                                       {
>>>>>>>>>>>                                                           
>>>>>>>>>>> impressions = 100000,
>>>>>>>>>>>                                                           
>>>>>>>>>>> timeUnit = TimeUnit.MINUTE,
>>>>>>>>>>>                                                           level 
>>>>>>>>>>> = Level.CAMPAIGN
>>>>>>>>>>>                                                       }
>>>>>>>>>>>                                };
>>>>>>>>>>>             var operation = new CampaignOperation {@operator = 
>>>>>>>>>>> Operator.ADD, operand = campaign};
>>>>>>>>>>>             var operations = new CampaignOperation[1];
>>>>>>>>>>>             operations[0] = operation;
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>             // get service
>>>>>>>>>>>             var user = new AdWordsUser();
>>>>>>>>>>>             var url = Request.Url.GetLeftPart(UriPartial.Path);
>>>>>>>>>>>             var config = user.Config as AdWordsAppConfig;
>>>>>>>>>>>             user.OAuthProvider = new AdsOAuthNetProvider(
>>>>>>>>>>>                     config.OAuthConsumerKey,
>>>>>>>>>>>                     config.OAuthConsumerSecret,
>>>>>>>>>>>                     AdWordsService.GetOAuthScope(user.Config as 
>>>>>>>>>>> AdWordsAppConfig),
>>>>>>>>>>>                     url,
>>>>>>>>>>>                     Session.SessionID
>>>>>>>>>>>                 );
>>>>>>>>>>>
>>>>>>>>>>>             var service = (CampaignService) 
>>>>>>>>>>> user.GetService(AdWordsService.v201109.CampaignService);
>>>>>>>>>>>             var page = service.mutate(operations);
>>>>>>>>>>>
>>>>>>>>>>> When I run this I get an `AdWordsApiException` with an 
>>>>>>>>>>> InnerException `AuthenticationError.OAUTH_TOKEN_HEADER_INVALID @ 
>>>>>>>>>>>  Service[CampaignService.mutate]`
>>>>>>>>>>>
>>>>>>>>>>> Now I have the following in my `Web.config`:-
>>>>>>>>>>>
>>>>>>>>>>>     <!-- Note: For testing purposes, you can use the OAuth 
>>>>>>>>>>> consumer key/secret as anonymous/anonymous.-->
>>>>>>>>>>>     <add key="AuthorizationMethod" value="OAuth"/>
>>>>>>>>>>>     <add key="OAuthConsumerKey" value="anonymous"/>
>>>>>>>>>>>     <add key="OAuthConsumerSecret" value="anonymous"/>
>>>>>>>>>>>     <!-- Uncomment this key if you want to use v13 sandbox. -->
>>>>>>>>>>>     <!-- <add key="LegacyAdWordsApi.Server" value="
>>>>>>>>>>> https://sandbox.google.com"/> -->
>>>>>>>>>>>     <!-- Uncomment this key if you want to use AdWords API 
>>>>>>>>>>> sandbox. -->
>>>>>>>>>>>     <add key="AdWordsApi.Server" value="
>>>>>>>>>>> https://adwords-sandbox.google.com"/>
>>>>>>>>>>>
>>>>>>>>>>> As I understand it this is set up correctly, what am I missing?
>>>>>>>>>>>
>>>>>>>>>>> Any help would be very gratefully received!!!
>>>>>>>>>>>
>>>>>>>>>>

-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 [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