#!/usr/bin/perl -w # # Copyright 2006 Google Inc. All rights reserved. use SOAP::Lite; # Demo of using the Referral service to generate a # Javascript referral code snippet. # SOAP Headers $developerEmail = 'REPLACE WITH DEVELOPER\'S EMAIL'; $developerPassword = 'REPLACE WITH DEVELOPER\'S PASSWORD'; $clientId = 'ca-ref-pub-REPLACE WITH CLIENT ID'; # The namespace used for API headers. my $namespace = "http://www.google.com/api/adsense/v2"; # Set up the Referral service connection $referralWsdlUrl = "http://www.google.com/api/adsense/v2/ReferralService?WSDL"; my $referralService = SOAP::Lite->service($referralWsdlUrl); # Uncomment this line to display the XML request/response. # $referralService->on_debug( sub { print @_ } ); # Disable autotyping. $referralService->autotype(0); # Register a fault handler. $referralService->on_fault(\&faulthandler); my @headers = (SOAP::Header->name("developer_email")->value($developerEmail)-> uri($namespace)->prefix("impl"), SOAP::Header->name("developer_password")->value($developerPassword)-> uri($namespace)->prefix("impl"), SOAP::Header->name("client_id")->value($clientId)-> uri($namespace)->prefix("impl")); $results = $referralService->getReferralData($clientId, "en_US", "AdSense", @headers); if($results) { @snippets = $results; foreach $snippet (@snippets) { print "The impression tag to show the referral button:\n" . $snippet->{"impressionTag"} . "\n\n"; print "The Javascript snippet to paste on your page:\n" . $snippet->{"snippet"} . "\n\n"; } } else { print "No referral data found.\n"; } ### Helper functions sub faulthandler { my ($soap, $res) = @_; my $errorMessage = "SOAP Fault: " . "Error Code " . $res->faultdetail->{"code"} . ". " . $res->faultdetail->{"message"}; if (defined $res->faultdetail->{"trigger"}) { $errorMessage .= " \"" . $res->faultdetail->{"trigger"} . "\" "; } if (defined $res->faultdetail->{"triggerDetails"}) { $errorMessage .= $res->faultdetail->{"triggerDetails"}; } die($errorMessage); }