Amazon-Webservices nutzen
Buchtipps per Zufall

DeveloperIT-ProjekteSoftware

Website-Betreiber können mit dem Amazon-Webservices ihr Angebot mächtig aufpeppen. Der Workshop zeigt, wie Sie aktuelle Buchtipps dynamisch in Ihre Site einbinden.

Service für Entwickler

Amazon-Webservices nutzen

Das Partnerprogramm von Amazon erfreut sich großer Beliebtheit. Es ist einfach zu implementieren und bei der Ausgestaltung der Links zu den einzelnen Amazon-Produkten sind der Fantasie keine Grenzen gesetzt. Und Geld verdienen kann man damit obendrein. Vorausgesetzt, man investiert einige Zeit und Fantasie in die Präsentation stets aktueller Produktlinks.

Mit der Nutzung der Webservices wird das Ganze noch um eine Idee flexibler und dynamischer. Allerdings kommt man dabei um ein wenig Programmieren nicht herum.

Wenn Sie als Website-Betreiber und Amazon-Partner diese Services nutzen wollen, müssen Sie sich zuerst eine Entwickler-ID besorgen, den so genannten Developer-Token. Gehen Sie dazu auf die Seite www.amazon.com/webservices. Sie finden dort auch das Developer-Kit, das Sie sich auf Ihren PC laden können und das eine Menge zusätzlicher und interessanter Infos enthält.

Die Amazon-Webservices bestehen aus einer Zusammenstellung von eigenständigen Applikationen, die mit Hilfe von XML-basierten Protokollen über das Web veröffentlicht und aufgerufen werden können. Sie können auf die Webservices über ein XML-Interface über HTTP oder ein Soap-Interface zugreifen. In beiden Fällen erhalten Sie XML-strukturierte Daten mit Informationen zu Produkten von Amazon.

Die im vorliegenden Beispiel vorgesehene Anwendung basiert auf der ersteren Methode, also dem Aufruf via HTTP. Das hat den Vorteil, dass sich der Programmieraufwand hier in Grenzen hält. Weiterhin können Sie dabei den XSLT-Service von Amazon nutzen, um ein externes Stylesheet für die Ausgabe zu nutzen.

Folgendes Szenario liegt dem Workshop zu Grunde: Auf einer Webseite soll eine Übersicht aktueller Bücher zu dem Thema, das auf der Seite behandelt wird, eingeblendet werden. Damit nicht ständig eine weitgehend identische Übersicht erscheint, wird eine Liste von zehn Keywords auf der Seite hinterlegt. Bei jedem Aufruf ermittelt ein kleines PHP-Skript zufällig einen Begriff aus dieser Liste und veranlasst einen XML-Aufruf anhand dieses Stichworts.


Stichwörter aus einer Liste

Amazon-Webservices nutzen

Der schematische Ablauf ist in der Grafik dargestellt (siehe Kasten). Wenn Ihnen das Prinzip klar geworden ist, können Sie loslegen. Sie haben eine Webseite zum Beispiel zum Thema »Römische Geschichte«. Dafür gilt es zuerst eine Stichwortliste für die Buchsuche zu definieren. Das geht am besten mit Hilfe eines Arrays. In PHP kann das so aussehen:

$stichworte = array (
"+Julius+Cäsar",
"+Römische+Geschichte",
"Augustus",
"+Kaiser+Nero",
"+Kaiser+Vespasian",
"+Kaiser+Caligula",
"+Via+Appia",
"+Forum+Romanum",
"+Hannibal+Cannae",
"Collosseum"
);

Als Nächstes erzeugen Sie einen kleinen Zufallsgenerator, der eine Zahl zwischen 0 und 9 und das dazu gehörende Stichwort ermittelt:


srand ((double)microtime()*1000000);
$zufall=rand(0,9);
$keyword= $stichwort[$zufall];
?>

Nun können Sie den XML-Aufruf konstruieren. Dessen Grundstruktur ist im Kasten »XML/HTTP-Call-Format« genauer dargestellt. Sie können diesen Aufruf-String nun direkt im HTML-Teil Ihres Seitendokuments eingeben und das variable Suchwort per echo in den Aufruf integrieren.


Anzeige der Buchliste

Amazon-Webservices nutzen

Für die Anzeige der Buchliste empfiehlt sich die Verwendung einer iframe-Konstruktion. Damit können Sie dieses Element einfach an einer beliebigen Stelle auf der Seite platzieren. Alternativ wäre auch eine PHP-Konstruktion mit einem div-Block und einer include-Anweisung denkbar. Auch ein Frameset wäre eine passende Plattform für eine kombinierte Anzeige von Amazon-Ergebnisdaten und eigenen Seiteninhalten. Der Fantasie sind hier keine Grenzen gesetzt.

Ein entscheidender Teil der Gesamtkonstruktion fehlt allerdings noch, nämlich das Stylesheet (XSLT) für die Formatierung der von Amazon zurückgelieferten Daten, das Sie mit dem f-Parameter in den Aufruf einbinden. Das Beispiel-Stylesheet, das Sie auf der Heft-CD finden, erstellt aus den XML-Daten eine kleine Tabelle, die folgenden Aufbau hat: In der ersten Spalte erscheint der Produktlink (Jetzt bestellen!), in der zweiten die Autoren und der Titel des Buches und in der dritten der aktuelle Preis.

Klickt der Besucher auf den Bestell-Link in der ersten Spalte, erscheint in einem neuen Browser-Fenster die Amazon-Seite zu dem entsprechenden Buch, auf der der Interessent dann seine Bestellung vornehmen kann.

Auf der Heft-CD finden Sie neben dem Muster-Stylesheet auch noch eine Beispiel-Seite als PHP-Skript. Um das Beispiel zu testen, gehen Sie so vor:
Extrahieren Sie beide Files aus dem Archiv. Dann öffnen Sie mit einem Editor das PHP-File und geben Sie an dem rot markierten Bereich Ihre Partner-ID und Ihren Developer-Token ein. Dann kopieren Sie beide Files in Ihren Webspace mit PHP-Unterstützung. Rufen Sie dann einige Male das Skript amazon.php auf. Bei jedem Aufruf sollte eine Buchliste mit jeweils anderen Büchern erscheinen.

Sie können natürlich auch Ihre eigenen Suchbegriffe aus einem völlig anderen Themenbereich definieren. Bevor sie damit live gehen, sollten Sie allerdings eine Recherche bei Amazon durchführen, ob die von Ihnen gewählten Keywords überhaupt Ergebnisse bringen. Das Spiel funktioniert natürlich nicht nur mit Büchern. Genauso gut können Sie auf Ihrer Seite eine Recherche in anderen Produktlinien von Amazon durchführen. Sie müssen dazu nur den Parameter mode im XML-Aufruf ändern.


Stylesheet anpassen

Amazon-Webservices nutzen

Wollen Sie die Form der Anzeige ändern, müssen Sie das XSL-File bearbeiten. Dazu ist es natürlich wichtig zu wissen, wie das XML-File aussieht, das Amazon nach dem Aufruf zurückgibt.

Für einen Testaufruf starten Sie einfach einen XML-Call im Browser. Als Parameter f geben Sie xml an und statt des von PHP erzeugten Keywords geben Sie einen Suchbegriff Ihrer Wahl ein. Der URL könnte zum Beispiel so aussehen:

http://xml-eu.amazon.com/onca/xml3?t=
[Partner-ID]&dev-t=[Developer-Token]
&type=lite &mode=books-de&
page=1&f=xml& KeywordSearch=
Augustus&locale=de

Sie erhalten das Ergebnis der Recherche als XML-Darstellung im Browser. Hier finden Sie alle Informationen, die Ihnen von den Amazon-Webservices zur Verfügung gestellt werden und die Sie in Ihrem XSL-File verwerten können.

Noch mehr Informationen erhalten Sie, wenn Sie den type-Paramter in heavy umwandeln. Allerdings sollten Sie bei Ihren Experimenten auch den Zeitfaktor berücksichtigen. Je mehr Daten Sie abrufen, desto länger dauert der Aufbau der Seite.

Wie das Ablaufschema zeigt, spielt sich da nämlich im Hintergrund einiges ab, was die Performance der Seite beeinträchtigen kann. Sie sollten daher vorsichtig sein, wenn es um den Einbau weiterer Parameter wie etwa Buchcover geht. Die Abbildung eines Buches würde zwar die Anzeige optisch aufwerten, jedoch je nach Anzahl der ermittelten Buchtitel zu weiteren Transaktionen zwischen Client und Amazon-Webservices führen. Wenn dann noch eine hohe Besucher-Frequenz dazukommt, kann das zu echten Problemen führen. Fangen Sie daher eher klein an und behalten Sie das Geschwindigkeitsverhalten der Seite jederzeit im Auge.