Home Sitemap Impressum
SEO Welten - Webcoding, Editoren, Scripte und Anwendungen

Webcoding - Ein einfaches Script zur Nutzung des Amazon Web Services / Product Advertising API

Voraussetzung: SimpleXML und PHP (PHP Version 5.1.2 oder höher)

Auf dieser Seite möchten wir Ihnen ein einfaches Script zur Nutzung des Amazon Webservice vorstellen. Sie können dieses Script downloaden oder so wie es hier abgebildet ist kopieren. Falls Sie das Kopieren vorziehen, so können Sie das Script als Quelltext in eine leere Seite einfügen und diese dann mit der Endung .php abspeichern. Sie können jedoch auch nur den Bereich von <?php bis ?> kopieren und in den Quelltext eines vorhandenen Templates einfügen. In diesem Fall müssen Sie die Seite im Head mit charset=UTF-8 deklarieren, damit Umlaute im Browser richtig dargestellt werden. Weiterhin entspricht das Dokument validem HTML 4.01 Transitional. Sollte das Script zum Beispiel in eine Seite mit XHTML  eingebunden werden, so müssten sie es erneut validieren, unter anderem müssten einige HTML Tags mit /> geschlossen werden, ansonsten wäre das Dokument nicht mehr valide.

Einfacher können Sie es sich machen, wenn Sie dieses Script komplett mit der zugehörigen CSS Datei, der Hintergrundgrafik sowie einer kleinen Anleitung/Readme downloaden. Den Head- und Footerbereich können Sie in jedem Fall ihren Bedürfnissen entsprechen anpassen, zum Beispiel durch das Einfügen eines Banners oder Menüs. Das Demo entspricht voll dem hier abgebildeten Script, mit Ausnahme der drei oberen Links. Diese drei Links sind nur im Demo enthalten.

Dieses Script enthält einen Zeitstempel und bildet eine Signatur, wie es ab Mitte August 2009 für einen Request beim Amazon Webserver und für die Nutzung der Product Advertising API erforderlich ist.

Weitere Einzelheiten | Demo

Beim Download haben Sie die Wahl:
Das Script für PHP5 und SimpleXML liegt in einer Version
für UTF-8 und in einer Version für ISO für Sie bereit, sowie jeweils
eine Version mit und eine ohne Cache.

Download (UTF-8) | UTF-8 mit Cache
Download (ISO-8859-1) | ISO mit Cache

Sie können dieses Script frei nutzen, gleich ob privat oder gewerblich (gewerblich mit Einschränkungen), so lange der enhaltene Hinweislink zu unseren Seiten nicht entfernt wird. Lesen Sie hierzu bitte auch unsere AGB. Sie dürfen und können damit nur keine Product Advertising API von Amazon nutzen, bevor Sie nicht über die erforderlichen Zugangsvoraussetzungen verfügen.

Um das Script testen zu können, benötigen Sie drei Kennungen, bestehend aus der Partner-Id, einem geheimen Access Key und dem AWS Zugangschlüssel. Hierzu müssen Sie sich bei Amazon für das Partnerprogramm registrieren sowie für den Web Service von Amazon anmelden und einer Lizenzvereinbarung mit Amazon zustimmen. Wo Sie sich anmelden müssen, um Ihre Partner-Id und ihre AWS Zugangskennungen zu erhalten, erfahren Sie auf dieser Seite:

Hinweise zum Amzon Web Service

Damit die Spider sich keinen Wolf laufen, empfehlen wir Ihnen eine robots.txt mit den hier abgebildeten Zeilen anzulegen. Falls Sie bereits eine robots.txt mit dem Eintrag User-agent: * angelegt haben, so bitte den Eintrag nur mit der letzten Zeile komplettieren.

User-agent: *
Disallow: /*ItemPage

Warum dieser Eintrag sinnvoll ist erfahren Sie hier: Einzelheiten

Hier geht es zur Ansicht des Scripts in der Ausführung für ISO.

weiterlesen» Script für PHP5 / ISO | CacheVersion


Neu ab Oktober 2011 - Beschreibung | DemoShop | Download

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<title>Literatur / B&uuml;cher zum Thema: Computer</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="demos.css"> 
</head>

<body bgcolor="#F1EDDA">

<h1 align="center">Ein Demo mit SimpleXML und UTF-8</h1>
<div align="center"><center>

<?php

//------ Hier bitte Ihre persoenlichen Zugangsschluessel eintragen --------

$secret_access_key = "00GEHEIM000000000000000000";   //-- Hier bitte Ihren geheimen Zugangs-Schlüssel eintragen
$access_key_id     = "00PHANTASIE00000000000000";    //-- Hier bitte Ihre AWSAccessKeyId eintragen
$associate_id      = "ihredomainphantasie-21";       //-- Hier bitte Ihre Partner-Id eintragen


//------ Rubrik und Thema vorwaehlen, damit Seite nicht leer ladet --------

$dierubrik = "Books";        //-- Eine Rubrik eintragen, z.B. Books oder Tools
$meinthema = "Computer";  //-- Ein Suchwort, Thema, Titel oder Autor eintragen


//------ Ab hier bitte nur bei Bedarf die Zahlenwerte abaendern! ----------

$tableweite = "width=\"100%\"";   //-- Tabellenweite anpassen -------------
$cellspacg  = "cellspacing=\"0\" cellpadding=\"0\"";
$zelleprig  = "padding-right: 10px; padding-top: 12px; padding-bottom: 15px;";
$zelleleft  = "padding-left: 10px; padding-top: 12px; padding-bottom: 15px;";
$zellunten  = "padding-left: 10px; padding-right: 10px; padding-top: 10px; padding-bottom: 10px;";


//------ Ab hier bitte keine Veraenderungen mehr vornehmen! ---------------
//------ Auslagerung dient nur zur Verkuerzung der Zeilen -----------------

$tabla  = "target=\"_blank\"";
$goldbr = "<span class=\"goldbraun\">";


//------ Der Briefkasten vom Formular mit Umwandlung der Umlaute ----------

if ($_GET) {

  $SearchIndex = urlencode($_GET['SearchIndex']);
  $Keywords    = urlencode($_GET['Keywords']);
  $ItemPage    = urlencode($_GET['ItemPage']);

$eing = array('%C3%84','%C3%A4','%C3%96','%C3%B6','%C3%9C','%C3%BC','%C3%9F','%3C','%3E','%28','%29','%7B','%7D','%5B','%5D',' ');
$ausg = array('Ae','ae','Oe','oe','Ue','ue','ss','no','nie','nicht','nein','na','nae','nee','nu','+');
$umlautade = str_replace($eing,$ausg,$Keywords);

  $SearchIndex = preg_replace("/[^a-zA-Z]/", "no", $SearchIndex);
  $ItemPage    = preg_replace("/[^0-9]/", "1", $ItemPage);
} 
  else {$SearchIndex = $dierubrik;
        $umlautade   = $meinthema;
        $ItemPage    = 1;
}

//------ Die Titelzeile und das obere Suchformular ------------------------

print "\t<table border=\"0\" ".$tableweite." ".$cellspacg.">\n".
      "\t<tr><td width=\"100%\" style=\"padding-top: 1px; padding-bottom: 2px\">\n".
      "\t<p align=\"center\">".$goldbr."Literatur / B&uuml;cher zum Thema: " .$umlautade. " bei Amazon</span></td></tr>\n".
      "\t</table>\n";

?>

<form name="Suchoptionen" action="<?php echo basename($_SERVER["PHP_SELF"]);?>" method="get" accept-charset="utf-8">

<br><br>
<select name="SearchIndex">
	<option value="Books">B&uuml;cher</option>
	<option value="DVD">DVD</option>
	<option value="Music">Musik</option>	
	<option value="Toys">Spielwaren</option>	
	<option value="OutdoorLiving">Hobby &amp; Freizeit</option>
	<option value="Software">Software</option>
	<option value="Tools">Werkzeug</option>
	<option value="SoftwareVideoGames">Video &amp; PC Spiele</option>
	<option value="HomeGarden">Haus &amp; Garten</option>	
	<option value="Kitchen">Haushalt</option>
	<option value="Photo">Fotografie</option>
	<option value="Electronics">Elektronik</option>
</select>
			  			
&nbsp; Eingabe

<input type="text" name="Keywords" value="" size="30">
<input type="hidden" name="ItemPage" value="1">
<input type="submit" value="Suchen">
</form>

<?php

print "\t<hr style=\"color: #FDFCFB; background-color: #FDFCFB\">\n";


/* Das eigentliche Sende- und Empfangsteil. Ein Teil der restlichen Parameter wird gebildet und wo es sein muss für den
   Versand kodiert. Die Parameter werden dann entsprechend des Byte-Wertes ihrer Schlüssel geordnet. Auch wenn es auf 
   dem ersten Blick so erscheint, so entspricht diese Anordnung nicht ganz dem Alphabet, da in der Reihenfolge das kleine 
   a erst hinter dem großen Z kommt. So sind die Anfangsbuchstaben AW höher als die Anfangsbuchstaben As einzuordnen. 

   Im Anschluss wird die Signatur gebildet und der komplette String zusammen gesetzt.
*/

$aktuelle     = gmdate("Y-m-d\TH:i:s\Z");
$aktuellezeit = urlencode($aktuelle);
$SearchIndex  = urlencode($SearchIndex);
$umlautade    = urlencode($umlautade);


$alleparameter = "AWSAccessKeyId" ."=".  $access_key_id       ."&".
                 "AssociateTag"   ."=".  $associate_id        ."&".
                 "ItemPage"       ."=".  $ItemPage            ."&".
                 "Keywords"       ."=".  $umlautade           ."&".
                 "Operation"      ."=". "ItemSearch"          ."&".
                 "ResponseGroup"  ."=". "Medium"              ."&".
                 "SearchIndex"    ."=".  $SearchIndex         ."&".
                 "Service"        ."=". "AWSECommerceService" ."&".
                 "Timestamp"      ."=".  $aktuellezeit        ."&".
                 "Version"        ."=". "2009-07-18"; 



        $stringsignr = "GET\n"."ecs.amazonaws.de"."\n"."/onca/xml"."\n".$alleparameter;
       
        $signature1  = base64_encode(hash_hmac("sha256", $stringsignr, $secret_access_key, True));
       
        $signature2  = urlencode($signature1);


$daten = file_get_contents("http://ecs.amazonaws.de/onca/xml?".$alleparameter."&Signature=".$signature2);



//------ Die XML-Datei wird geladen. ---------------------------------------

$response = simplexml_load_string($daten); 


//-- Auf jeden Fall muss hier der Print der Tabelle beginnen ------------

    echo "\n\t<table border=\"0\" ".$tableweite." ".$cellspacg.">\n"; 


foreach ($response->Items->Item as $movie) {

    echo "\t<tr><td align=\"center\" style=\"".$zelleprig." border-bottom: 1px solid rgb(255,255,255)\">\n";  

//------ Bilder mit Link zur Detailseite --------------------------------------

   if($movie->MediumImage->URL){ 

     echo ("\t<a href=\"".$movie->DetailPageURL."\" ".$tabla."><img src=\"".$movie->MediumImage->URL."\" 
            border=\"0\" alt=\"Cover\"></a></td>\n");

   } else { echo 'Leider kein Bild <br> vorhanden.';
   }


   echo "\t<td align=\"center\" style=\"".$zelleleft." border-bottom: 1px solid rgb(255,255,255)\">\n";

//------ Die Titel von den Produkten mit Link zur Detailseite ------------

   echo ("\t<a href=\"".$movie->DetailPageURL."\" ".$tabla." class=\"braungold\">".
         htmlspecialchars($movie->ItemAttributes->Title)."</a><br>"); 

//------ Autoren, Mitautoren und Übersetzer ------------------------------

   if($movie->ItemAttributes->Author[0]){ 
      echo ("Autor: ".htmlspecialchars($movie->ItemAttributes->Author[0]));
   }  else {}   
   if($movie->ItemAttributes->Author[1]){ 
      echo (" - ".htmlspecialchars($movie->ItemAttributes->Author[1]));
   }  else {}   
   if($movie->ItemAttributes->Author[2]){ 
      echo (" - ".htmlspecialchars($movie->ItemAttributes->Author[2]));
   }  else {}

//------ Verlag, Produzent, Art der Bindung, Datum -------------------------

   if($movie->ItemAttributes->Publisher){ 
      echo ("<br>Verlag/Produzent: ".htmlspecialchars($movie->ItemAttributes->Publisher));
   }  else {}  
   if($movie->ItemAttributes->Binding){ 
      echo (" - ".htmlspecialchars($movie->ItemAttributes->Binding));
   }  else {}   
   if($movie->ItemAttributes->PublicationDate){ 
      echo ("<br>erschienen: ".htmlspecialchars($movie->ItemAttributes->PublicationDate));
   } else {}

//------ Bemerkungen zur Beschaffenheit - falls vorhanden ------------------    

   if($movie->ItemAttributes->Feature[0]){ 
      echo ("<br>Beschaffenheit: ".htmlspecialchars($movie->ItemAttributes->Feature[0]));
   }  else {}
   if($movie->ItemAttributes->Feature[1]){ 
      echo (", ".htmlspecialchars($movie->ItemAttributes->Feature[1]));
   }  else {}
   if($movie->ItemAttributes->Feature[2]){ 
      echo (", ".htmlspecialchars($movie->ItemAttributes->Feature[2]));
   }  else {}                                               

//------ Neupreis und Angebotspreise ---------------------------------------      

   if($movie->OfferSummary->LowestNewPrice->FormattedPrice){ 
      echo ("<br>Preis: ".htmlspecialchars($movie->OfferSummary->LowestNewPrice->FormattedPrice));
   }  else { echo '<br>Preis: keine Angaben';
   }	
   if($movie->OfferSummary->LowestUsedPrice->FormattedPrice){ 
      echo (" / erh&auml;ltlich ab: ".htmlspecialchars($movie->OfferSummary->LowestUsedPrice->FormattedPrice));
   }  else { echo ' / erh&auml;ltlich ab: keine Angebote';
   }

//------ Link zur Detailseite und Zellenende -------------------------------

   echo ("<br><br>\n\t<a href=\"".$movie->DetailPageURL."\" ".$tabla." class=\"braungold\">weitere Details</a><br>"); 
   echo "\n\t</td></tr>\n\n";	

  }

    print "\t<tr><td align=\"center\" style=\"".$zellunten."\" colspan=\"2\">\n\n";  
		

//------- Die Auswertung vom Response und Umwandlung der Rubriknamen ------

foreach ($response->Items->Request as $gefunden) {	

    echo ("Seite ".$gefunden->ItemSearchRequest->ItemPage);

    $SearchIndex = ($gefunden->ItemSearchRequest->SearchIndex);

//------ Hier erhalten die Kategorien ihren deutschen Namen ---------------	   

$Deutsch = array("Books"              => "B&uuml;cher",
                 "Music"              => "Musik",
                 "DVD"                => "DVDs",
                 "Toys"               => "Spielwaren &amp; Modellbau",
                 "OutdoorLiving"      => "Hobby &amp; Freizeit",
                 "Software"           => "Software",
                 "Tools"              => "Werkzeug",
                 "SoftwareVideoGames" => "Video &amp; PC Spiele",
                 "HomeGarden"         => "Haus &amp; Garten",
                 "Kitchen"            => "Haushalt",
                 "Photo"              => "Fotografie",
                 "Electronics"        => "Elektronik");	


echo (" - Rubrik ".$Deutsch[(string)$SearchIndex]." - Thema: ");	

$Keywords = ($gefunden->ItemSearchRequest->Keywords);
echo preg_replace("/[ ]/", "+", $Keywords);


}


foreach ($response->Items as $Ergebnisse) {

echo ("<br> Treffer insgesamt: ".$Ergebnisse->TotalResults);
echo (" auf ".$Ergebnisse->TotalPages. " Seiten");	

}

//------- Hier beginnt das untere Formular ---------------------------------------

?>

<form name="Searchoptionen" action="<?php echo basename($_SERVER["PHP_SELF"]);?>" method="get" accept-charset="utf-8">

<br><br>
<select name="SearchIndex">
	<option value="Books">B&uuml;cher</option>
	<option value="DVD">DVD</option>
	<option value="Music">Musik</option>	
	<option value="Toys">Spielwaren</option>	
	<option value="OutdoorLiving">Hobby &amp; Freizeit</option>
	<option value="Software">Software</option>
	<option value="Tools">Werkzeug</option>
	<option value="SoftwareVideoGames">Video &amp; PC Spiele</option>
	<option value="HomeGarden">Haus &amp; Garten</option>	
	<option value="Kitchen">Haushalt</option>
	<option value="Photo">Fotografie</option>
	<option value="Electronics">Elektronik</option>
</select>

&nbsp; Eingabe

<input type="text" name="Keywords" value="" size="30">
<input type="hidden" name="ItemPage" value="1">
<input type="submit" value="Suchen">
 </form>

<?php

print "\t</td></tr>\n\t<tr><td style=\"padding-top: 10px; padding-bottom: 10px\" colspan=\"2\">\n";
print "\t<table border=\"0\" width=\"100%\"><tr><td width=\"33%\" align=\"left\" style=\"padding-left: 20px\">\n";


/* Ab hier werden die Links zur naechsten Seite und zurueck werden gebildet, wobei die Anwendung von htmlspecialchars 
   nicht nur der Sicherheit dient, sondern auch der Validierung des Dokuments, um das & in ein &amp; bei der Ausgabe 
   zu verwandeln. 
*/
 
$TotalPages  =  ($Ergebnisse->TotalPages);
$SearchIndex =  ($gefunden->ItemSearchRequest->SearchIndex);
$Keywords    =  ($gefunden->ItemSearchRequest->Keywords);
$ItemPage    =  ($gefunden->ItemSearchRequest->ItemPage);	
$Keywords    =  preg_replace("/[ ]/", "+", $Keywords);


   if ($TotalPages > 1) {

        if ($ItemPage > 1) {

        echo   "\t<a class=\"braungold\" href=\"".htmlspecialchars("?".
                 "SearchIndex"."=". $SearchIndex ."&".
                 "Keywords"   ."=". $Keywords    ."&".
                 "ItemPage"    ."=".($ItemPage -1)).
                 "\">« zur&uuml;ck </a>\n";

        }  else {echo "\t<span class=\"zueinsam\">« zur&uuml;ck</span></td>\n";}  
        }

$scautor  = "Script von www.seo-welten.de";
$lscautor = "href=\"http://www.seo-welten.de\"";

	print "\t<td width=\"33%\" align=\"center\"><a class=\"braunklein\" ".$lscautor." ".$tabla.">".$scautor."</a></td>\n";
	print "\t<td width=\"34%\" align=\"right\" style=\"padding-right: 20px\">\n";  


     if ($TotalPages > 1) {

        if ($ItemPage*1 <= $TotalPages) {

        echo   "\t<a class=\"braungold\" href=\"".htmlspecialchars("?".
                  "SearchIndex"."=". $SearchIndex ."&".
                  "Keywords"   ."=". $Keywords    ."&".
                  "ItemPage"    ."=".($ItemPage +1)).
                  "\">n&auml;chste Seite »</a>\n";

        }  else {echo "*\n";}
        }	


   	print "\t</td></tr></table>\n\n</td></tr></table>\n";

?>  

</center></div>
</body>
</html>


Copyright © 2009 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen