[ Team LiB ] |
Hack 89 Program AWS with NuSOAP and PHPPHP's standard SOAP module NuSOAP makes SOAP simple. Like Perl, PHP has its emerging standard method of working with SOAP applications. NuSOAP is a single PHP script (with over 4,000 lines of code!) that handles all of the SOAP heavy lifting for you. Get your copy from http://dietrich.ganx4.com/nusoap/ and include the file in the same directory as your scripts. 89.1 The CodeThe script, amazon_soap.php, is meant to be run as a web page. It accepts a variable, keyword, in the URL. With this, it creates the proper SOAP request and returns the results as an array. <html>
<head>
<title>Amazon Keyword Search</title>
</head>
<body>
<?
#Use the NuSOAP php library
require_once('nusoap.php');
#Set parameters
$parameters = array('keyword' => $HTTP_GET_VARS['keyword'],
'type' => 'lite',
'page' => '1',
'mode' => 'books',
'tag' => 'insert associate tag',
'devtag' => 'insert developer token');
#Create a new SOAP client with Amazon's WSDL
$soapclient = new soapclient('http://soap.amazon.com/schemas2/[RETURN]
AmazonWebServices.wsdl','wsdl');
$proxy = $soapclient->getproxy( );
#query Amazon
$results = $proxy->KeywordSearchRequest($parameters);
//echo 'Request: <xmp>'.$proxy->request.'</xmp>';
//echo 'Response: <xmp>'.$proxy->response.'</xmp>';
#Results?
if (is_array($results['Details'])) {
print "<p>Search for <b>" . $HTTP_GET_VARS['keyword'] . "</b>" .
" found " . $results['TotalResults'] . " results." .
" <br>Here are the first " . count($results['Details']).".".
" </p><ol>";
foreach ($results['Details'] as $result) {
print
"<li><b>" . $result['ProductName'] . "</b>" .
"<br /> by " . $result['Authors'][0] .
" <a href='" . $result['Url'] . "'>" . $result['OurPrice']. "</a><br><br>";
}
print "</ol>";
}
#No Results
else {
print "Your Amazon query for '" . $HTTP_GET_VARS['keyword'] .
"' returned no results";
}
?>
</body>
</html>
89.2 Running the HackTo run the code, place the file on a web server, and browse to: http://example.com/amazon_soap.php?keyword=hacks If you run into problems or are curious about what's being sent between the servers, uncomment the //echo statement by removing the slashes. This will print out the entire SOAP request and Amazon's SOAP response. It's a good way to get a sense of the formatting work being done behind the scenes. |
[ Team LiB ] |