Thema: Delphi Cover von Amazon?

Einzelnen Beitrag anzeigen

mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Cover von Amazon?

  Alt 23. Sep 2009, 18:54
Na dann wollen wir mal.

Die Lösung ist zwar nicht ganz sauber und funktioniert nur über den Umweg "PHP".
Zunächst benötigt ihr erst einmal einen Webspace mit PHP-Unterstützung, um später darauf euer Script ablegen und aufrufen zu können. Webspaceanbieter gibt es zu hauf, auch kostenlose!!! Solltet ihr bereits eine Domain euer Eigen nennen können, könnt ihr euch das Beschaffen von Webspace klemmen.

Als nächster Schrit steht eine kostenlose Registrierung bei Amazon-Webservice an. Hier geht ihr wie folgt vor:

1. ruft folgende URL auf: http://aws.amazon.com/
2. klickt danach auf die Schaltfläche "Sign up now" (oben rechts) um ein neuen Account anzulegen
3. Gebt alle benötigten Infos ein.
4. ihr bekommt darauf hin eine Mail mit weiteren Instruktionen
5. Nachdem ihr euch erfolgreich registriert habt, ruft ihr wieder oben genannte URL auf
6. Klickt dieses mal unter "Your Account" auf "Security Credentials"
7. Einloggen
8. Auf der Seite "Security Credentials", wo ihr jetzt hoffentlich seit, seht ihr eure persöhnlichen Identifikationsdaten (mehr im mittleren Bereich der Seite). Ihr benötigt eure "Access Key ID" sowie, und dafür auf "Show" klicken, euren "Secret Access Key". Am besten aufschreiben, speichern!!!!

Das war die Amazon-Kiste. Als nächstes erstellen wir uns ein PHP-Script. Dieses ruft unsere gewünschten Infos aus unserer Suchabfrage, zu der wir später kommen, vom Server ab.

Ihr könnt hierfür einen Texteditor, oder wer über Dreamweaver oder ähnliche Editoren verfügt, auch diesen verwenden. Nur mal so am Rande. Dreamweaver verfügt über ein brauchbares Syntax Highlighting und mach die ganze Sache übersichtlicher. Naja, soviel Codezeilen sind es ja nicht.

Mein vollständiger PHP-Code:

Code:
<?php
   session_start(); //Könnte man sich auch schenken, da wir ja nach der Abfrage nichts
                         //mehr vom Server wissen möchte
   $rubrik2 = $_REQUEST["rubrik1"]; //in dieser Variable steht die zu durchsuchende Rubrik drin
   $seite2 = $_REQUEST["seite1"]; //hier wird in dieser Variabel logischer Weise eine 1
                                       //drin, da wir ja den ersten Treffer zurück haben wollen
   $schluesselwort2 = $_REQUEST["schluesselwort1"]; //hier steht der gesuchte Begriff
//Damit man die Seite nicht von außen aufrufen kann, habe ich jetzt einen Sicherheitscheck eingebaut
//Somit ist nun gewährleistet, dass man nur aus eurem Programm auf das Script zugreifen kann
//und verarbeitet wird
   $check2 = $_REQUEST["check1"];
   if ( $check2 == 'nennen wir diesen jetzt mal "sehr einfallsreich' )
   {
                //sollte die Variable $check2 mit dem Request gepasst haben ist
      //alles OK
      $secret_access_key = "Eurer secret_access_key";
                //hier muß eurer secret_access_key rein

      $access_key_id       = "Eure access_key_id";
                //hier muß eure access_key_id rein

      $associate_id           = "ihredomainphantasie-23";
                //Die associate_id könnt ihr wie oben übernehmen
   }
   else
   {
                //Sollte von aussen zugeriffen werden, wird der Else-Block ausgeführt und beendet
                //das Script
      echo 'keine Berechtigung';
      die;
   }
?>
//Den Rest könnt ihr jetzt übernehmen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
   $dierubrik   = "Music";
   $meinthema = "Nena";
   $tableweite = "width=\"100%\"";
$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;";
$tabla   = "target=\"_blank\"";
$goldbr = "<span class=\"goldbraun\">";

if ($_GET) {
  $SearchIndex = $rubrik2;
  $Keywords   = $schluesselwort2;
  $ItemPage    = $seite2;
 
  $eingang = array('Ä','ä','Ö','ö','Ü','ü','ß','<','>','(',')','{','}','[',']','/','\\',' ');
  $ausgang = array('Ae','ae','Oe','oe','Ue','ue','ss','no','nie','nicht','nein','na','nae','nee','nu','nn','mm','+');
  $umlautade = str_replace($eingang,$ausgang,$Keywords);
 
  $SearchIndex = preg_replace("/[^a-zA-Z]/", "no", $SearchIndex);    
  $ItemPage    = preg_replace("/[^0-9]/", "1", $ItemPage);        

  else {$SearchIndex = $dierubrik;
           $umlautade   = $meinthema;
           $ItemPage   = 1;
}

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

$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 als String 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->LargeImage->URL."\" border=\"0\" alt=\"Cover\"></a></td>\n");
   } else { echo 'Leider kein Bild
 vorhanden.';
   }


   echo "\t<td align=\"center\" style=\"".$zelleleft." border-bottom: 1px solid rgb(255,255,255)\">\n";
   }
   
   foreach ($response->Items->Request as $gefunden) {   

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

    $SearchIndex = ($gefunden->ItemSearchRequest->SearchIndex);
   
   $Deutsch = array("Books"                       => "Bü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");
   
   $Keywords = ($gefunden->ItemSearchRequest->Keywords);

   
}     


foreach ($response->Items as $Ergebnisse) {
   
//echo ("
 Treffer insgesamt: ".$Ergebnisse->TotalResults);
//echo (" auf ".$Ergebnisse->TotalPages. " Seiten");   

}

?>
</body>
</html>
Speichert nun diese Datei als name.php. Name ist natürlich durch euren Dateinamen zu ersetzen.
Ladet diese nun auf eurem Webspace hoch.

Für ganz faule gibt es hier den Download des Scripts. Muß natürlich angepasst werden!!!!

Download PHP-Script Amazon Webservice

Fortsetzung folgt in ein paar Minuten. Brauche erst mal ein Käffchen!!!!!

Ich hoffe es war bis hier alles verständlich. Wenn nicht einfach posten.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat