Hi, The client library is kept upto date to support the latest version of AdWords API (in this case, v201003). I recommend using the client library over using the proxy objects directly, since the generated code has its own fair share of issues and won't work as such with the AdWords API. If you choose to generate your own stub classes, then you might want to continue reading the NoClientLibrary wiki which you mentioned in one of your other threads. Especially see http://code.google.com/p/google-api-adwords-dotnet/wiki/NoClientLibrary#Option_2:_Use_a_wsdl_code_generator_(wsdl.exe)_and_Microsoft_.NE.
To get the latest version of the library, you can visit the project home regularly or just subscribe to the project feed at http://code.google.com/p/google-api-adwords-dotnet/feeds. Cheers, Anash P. Oommen, AdWords API Advisor. On Aug 4, 9:53 pm, knuzich <[email protected]> wrote: > I tried all ways to get correct result but there are a gap in the > documentation. > Very simple way is to use direct links to wsdl of services for .NET > because .NET creates proxy object automatically!! but there are > documentation only for v13 in google adwords api web site > I see client library is very useful thing until more newer version > will not come !! In that was a trouble ^) > > anyway thank you for helping me > > On Aug 4, 4:51 pm, AdWords API Advisor <[email protected]> > wrote: > > > > > Hi, > > > You are connecting to the v13 CampaignService, which has been sunset. > > You need to make calls to v200909 CampaignService instead. So your > > code needs to be something like: > > > string authToken = GetAuthToken(); > > string requestXml = string.Format(@" > > <?xml version='1.0' encoding='utf-8'?> > > <soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' > > xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' > > xmlns:xsd='http://www.w3.org/2001/XMLSchema'> > > <soap:Header> > > <RequestHeader > > xmlns='https://adwords.google.com/api/adwords/cm/ > > v200909'> > > <authToken>{0}</authToken> > > <clientEmail>{1}</clientEmail> > > <developerToken>{2}</developerToken> > > <userAgent>{3}</userAgent> > > </RequestHeader> > > </soap:Header> > > <soap:Body> > > <mutate > > xmlns='https://adwords.google.com/api/adwords/cm/v200909'> > > <operations> > > <operator>ADD</operator> > > <operand> > > <name>Interplanetary Cruise > > #1280830394855.77</name> > > <status>PAUSED</status> > > <budget> > > <period>DAILY</period> > > <amount> > > > > <microAmount>50000000</microAmount> > > </amount> > > > > <deliveryMethod>STANDARD</deliveryMethod> > > </budget> > > <biddingStrategy > > xsi:type='ManualCPC'/> > > </operand> > > </operations> > > </mutate> > > </soap:Body> > > </soap:Envelope>", > > authToken, "client_1+my-gmail-email", > > "my-gmail-email++USD", "somewords").Trim(); > > WebRequest webRequest = HttpWebRequest.Create( > > "https://adwords-sandbox.google.com/api/adwords/cm/v200909/ > > CampaignService"); > > webRequest.Method = "POST"; > > webRequest.ContentType = "text/xml; charset=utf-8"; > > webRequest.Headers.Add("SOAPAction", ""); > > byte[] postBytes = Encoding.UTF8.GetBytes(requestXml); > > webRequest.ContentLength = postBytes.Length; > > using (Stream strmReq = webRequest.GetRequestStream()) { > > strmReq.Write(postBytes, 0, postBytes.Length); > > } > > try { > > WebResponse response = webRequest.GetResponse(); > > } catch (WebException ex) { > > throw new ApplicationException("Could not make Api call.", > > ex); > > } > > > It should be easier to use the .NET client library available > > fromhttp://code.google.com/p/google-api-adwords-dotnet/, so is there any > > particular reason why you wish to POST raw xmls instead? > > > Cheers, > > Anash P. Oommen, > > AdWords API Advisor. > > > On Aug 4, 2:27 pm, knuzich <[email protected]> wrote: > > > > tell me please where is mistake? i'am trying create sandbox campaign > > > in .NET > > > instead of "my-google-email" i enter my real email, "my-google- > > > password" replaced by my real password. > > > It is all. webRequest.GetResponse() return error 500 ("inner server > > > error") > > > > public static void CreateCampaign() > > > { > > > //https://sandbox.google.com/api/adwords/v13/CampaignService? > > > wsdl > > > //https://sandbox.google.com/api/adwords/v13 > > > //https://adwords.google.com/api/adwords/cm/v200909 > > > string authToken = GetAuthToken(); > > > string requestXml = string.Format(@" > > > <?xml version='1.0' encoding='utf-8'?> > > > <soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/ > > > envelope/' > > > xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' > > > xmlns:xsd='http://www.w3.org/2001/XMLSchema'> > > > <soap:Header> > > > <RequestHeader xmlns='https://sandbox.google.com/api/adwords/ > > > v13'> > > > <applicationToken>{0}</applicationToken> > > > <authToken>{1}</authToken> > > > <clientEmail>{2}</clientEmail> > > > <developerToken>{3}</developerToken> > > > <userAgent>{4}</userAgent> > > > </RequestHeader> > > > </soap:Header> > > > <soap:Body> > > > <mutate xmlns='https://sandbox.google.com/api/adwords/v13'> > > > <operations> > > > <operator>ADD</operator> > > > <operand> > > > <name>Interplanetary Cruise#111</name> > > > <status>PAUSED</status> > > > <budget> > > > <period>DAILY</period> > > > <amount> > > > <microAmount>50000000</microAmount> > > > </amount> > > > <deliveryMethod>STANDARD</deliveryMethod> > > > </budget> > > > <biddingStrategy xsi:type='ManualCPC' /> > > > </operand> > > > </operations> > > > </mutate> > > > </soap:Body> > > > </soap:Envelope>", > > > "", authToken, "", > > > "my-google-email++USD", "somewords").Trim(); > > > > WebRequest webRequest = HttpWebRequest.Create( > > > "https://sandbox.google.com/api/adwords/v13/ > > > CampaignService"); > > > webRequest.Method = "POST"; > > > webRequest.ContentType = "text/xml; charset=utf-8"; > > > webRequest.Headers.Add("SOAPAction", ""); > > > byte[] postBytes = Encoding.UTF8.GetBytes(requestXml); > > > webRequest.ContentLength = postBytes.Length; > > > > using (Stream strmReq = webRequest.GetRequestStream()) > > > { > > > strmReq.Write(postBytes, 0, postBytes.Length); > > > } > > > try > > > { > > > WebResponse response = webRequest.GetResponse(); > > > > } > > > catch (WebException ex) > > > { > > > throw new ApplicationException("Could not make Api call.", > > > ex); > > > } > > > } > > > > Here GetAuthToken() is > > > > private static string GetAuthToken() > > > { > > > WebRequest webRequest = > > > HttpWebRequest.Create("https://www.google.com/accounts/ClientLogin"); > > > webRequest.Method = "POST"; > > > webRequest.ContentType = "application/x-www-form-urlencoded"; > > > > string postParams = > > > "accountType=" + HttpUtility.UrlEncode("GOOGLE") + > > > "&Email=" + HttpUtility.UrlEncode("my-google-email") + > > > "&Passwd=" + HttpUtility.UrlEncode("my-google-password") + > > > "&service=" + HttpUtility.UrlEncode("adwords") + > > > "&source=" + HttpUtility.UrlEncode(string.Format("{0}-{1}- > > > {2}", "YOUR_COMPANY_NAME", > > > "YOUR_APP_NAME", "YOUR_VERSION_ID")); > > > > byte[] postBytes = Encoding.UTF8.GetBytes(postParams); > > > webRequest.ContentLength = postBytes.Length; > > > > using (Stream strmReq = webRequest.GetRequestStream()) > > > { > > > strmReq.Write(postBytes, 0, postBytes.Length); > > > } > > > > string retVal = ""; > > > try > > > { > > > WebResponse response = webRequest.GetResponse(); > > > > using (StreamReader reader = new > > > StreamReader(response.GetResponseStream())) > > > { > > > string sResponse = reader.ReadToEnd(); > > > string[] splits = sResponse.Split('\n'); > > > foreach (string split in splits) > > > { > > > string[] subsplits = split.Split('='); > > > if (subsplits.Length >= 2 && subsplits[0] == > > > "Auth") > > > { > > > retVal = subsplits[1]; > > > } > > > } > > > } > > > } > > > catch (WebException ex) > > > { > > > throw new ApplicationException("Could not generate auth > > > token.", ex); > > > } > > > return retVal; > > > } > > > > what is wrong > > ... > > read more » -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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
