I am attempting to setup the Google Adwords API v2009 for perl and I am running into a compilation error. The latest version of the Google Code Perl libraries for interfacing with the API are not released to CPAN, nor is there any traction to get them there.
I followed the directions in the Google read me file: http://code.google.com/p/google-api-adwords-perl/source/browse/trunk/README part of which states:
The backbone of the client library is a modified version of SOAP::WSDL. It handles the serialization/deserialization, transport, and creating classes for the objects defined in the AdWords API WSDLs. SOAP::WSDL, in turn, uses SOAP::Lite under the hood for some operations.
Later on the the README, in the "Step-by-step guide for getting started:" section it states:
4) This client library relies on a development version of the SOAP::WSDL module, and also relies on patches to that module. You download the version of SOAP::WSDL available at
http://soap-wsdl.svn.sourceforge.net/viewvc/soap-wsdl/SOAP-WSDL/branches/Typemap.tar.gz?view=tar&pathrev=846
and expand the gzip and tar archive. Once that's done, run the soap_wsdl_patches.pl script on the expanded Typemap directory like so:
bin/soap_wsdl_patches.pl /path/to/downloaded/Typemap
5) Install the patched SOAP::WSDL following the directions in its README.
I have followed all of these steps with the exception that I downloaded a later version of the SOAP::WSDL module (861).
Bellow is an overview of the hoops I had jumped through so far:
I have downloaded and installed the latest library package:
http://code.google.com/p/google-api-adwords-perl/downloads/detail?name=awapi_perl_lib_1.3.2.tar.gz
I have downloaded and installed the latest version of the SOAP WSDL module (now on version 861 the last time I checked BTW - the Google READ me was looking for an older version of the code - 846):
http://soap-wsdl.svn.sourceforge.net/viewvc/soap-wsdl/SOAP-WSDL/branches/Typemap.tar.gz?view=tar&pathrev=861
Ran the WSDL patch as decribed in the README.
Did the build and install.
Made the Google Accounts - got the tokens.
I created an adwords.properties file in my home directory and edited it with my account data (I did not turn on the Sandbox setting).
Made a local copy of http://google-api-adwords-perl.googlecode.com/svn/trunk/example/display_stats.pl
When I tried to run the above test script I got the following error:
SOAP/Deserializer.pm did not return a true value at (eval 93) line 3.
...propagated at /usr/lib/perl5/5.8.8/base.pm line 85.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/
Google/AdWords/Deserializer.pm line 24.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/
Google/
AdWords/Client.pm line 26.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/
Google/AdWords/Client.pm line 26.
Compilation failed in require at display_stats.pl line 24.
BEGIN failed--compilation aborted at display_stats.pl line 24.
Any ideas?
Fixed it. It was the Google Code causing the problem.