O'Reilly logo

Amazon Hacks by Paul Bausch

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Program AWS with NuSOAP and PHP

PHP’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.

The Code

The 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>"; ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required