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.NETwebsite.
>>>>>>
>>>>>> 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