Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Cover von Amazon? (https://www.delphipraxis.net/140629-cover-von-amazon.html)

mlspider 22. Sep 2009 14:55


Cover von Amazon?
 
Ich suche eine Möglichkeit diverse Cover von Amazon zu beziehen. Hat vielleicht irgend wer einen Lösungsansatz?

Larsi 22. Sep 2009 14:59

Re: Cover von Amazon?
 
Du brauchst einen Api Key von Amazon dafür. Such mal hier in der Dp nach Amazon.

Mithrandir 22. Sep 2009 15:00

Re: Cover von Amazon?
 
Amazon hat dafür eine eigene API.

mlspider 22. Sep 2009 15:03

Re: Cover von Amazon?
 
Hmm. Nur leider lässt sich diese API nicht finden. Werde nochmals meine Brille putzen.

Larsi 22. Sep 2009 15:07

Re: Cover von Amazon?
 
Erstell dir einen Account und die werden dir eine geben. (Vermute ich)

mlspider 22. Sep 2009 15:16

Re: Cover von Amazon?
 
@Larsi, leider ist dem nicht so. Ich habe jetzt zwar eine Access Key ID und einen Secret Access Key, nur irgendwie hilft mir das nun auch nicht weiter.

Codewalker 22. Sep 2009 16:57

Re: Cover von Amazon?
 
Bis vor dem 1. August war das recht unkompliziert. Amazon bietet einen Webservice an, über den das relativ einfach ging. Benötigt wird der Access Key ID und der Secret Access Key und die WSDL-Definition des Webdienstes (etwas versteckt war die auch zum Download bei Amazon erhältlich). Diese kann man in Delphi dann importieren und bekommt eine Unit (AWSECommerceService.pas) erstellt mit einer Klasse die den Zugriff auf Amazon kapselt. Der Zugriff lief ungefähr so (SmallImage, MediumImage und LargeImage sind Images auf der Form, Util eine kleine Hilfsunit von mir ):

Delphi-Quellcode:
var
  AmazonPort: AWSECommerceServicePortType;
  body: ItemLookup;
  aRequest: ItemLookUpRequest;
  aResponse: ItemLookupResponse;
  Id: Array_Of_string;
  groups: Array_Of_string;
  Item: Item4
  memstr: TMemoryStream;
begin
 AmazonPort := GetAWSECommerceServicePortType(true, '', HTTPrio); // Verbindung aufbauen. HTTPrio wird gebraucht, um Umlaut per UTF8InHeader zu verarbeiten
 body := ItemLookup.Create;
 body.AWSAccessKeyId := 'DEIN ACCESSKEY';
 body.SubscriptionId := 'Dein Amazon Associate Benutzername';
 body.AssociateTag := 'Dein Amazon Associate Benutzername';

 aRequest := ItemLookupRequest.Create;
 { Abfrage per ASIN-ID - der Amazon-Produktschlüssel}
 SetLength(Id, 1);
 Id[0] := 'Die ASIN zum Suchen';
 aRequest.ItemId := Id;

 { Abfrage Gruppen (s. Dokumentation von Amazon) }
 SetLength(groups, 4);
 groups[0] := 'EditorialReview';
 groups[1] := 'Images';
 groups[2] := 'ItemAttributes';
 groups[3] := 'Medium';
 aRequest.ResponseGroup := groups;

 { Abfrage mit Body verbinden }
 SetLength(arr_request, 1);
 arr_request[0] := aRequest;
 body.Request := arr_request;

 aResponse := AmazonPort.ItemLookup(body); // Abfrage durchführen
 item := aResponse.Items[0].Item[0]; // Rückgabewert verarbeiten (Quick & Dirty fürs kurze zeigen)


    { Laden der Coverbilder }
    memstr := TMemoryStream.Create;
    Util.DownloadFromToStream(aResponse.Items[0].Item[0].SmallImage.URL,
      memstr);
    memstr.Seek(0, 0);
    SmallImage.LoadFromStream(memstr);

    memstr.Clear;
    Util.DownloadFromToStream(aResponse.Items[0].Item[0].MediumImage.URL,
      memstr);
    memstr.Seek(0, 0);
    MediumImage.LoadFromStream(memstr);

    memstr.Clear;
    Util.DownloadFromToStream(aResponse.Items[0].Item[0].LargeImage.URL,
      memstr);
    memstr.Seek(0, 0);
    LargeImage.LoadFromStream(memstr);
    memStr.Free;
end;
Problem ist: Seit August muss jede Anfrage auf eine bestimmte Weise signiert sein. Damit habe ich mich nur am Rande beschäftigt. Im Prinzip bleibt es so wie oben gezeigt, aber ein passender Hashwert muss dazu - falls das jemand mit Delphi hinbekommt wäre ich sehr interessiert (in der DP gibt es eine unschöne Lösung mit einer 3rd-Party-Komponente).

Mithrandir 22. Sep 2009 17:00

Re: Cover von Amazon?
 
Zitat:

Zitat von Codewalker
Im Prinzip bleibt es so wie oben gezeigt, aber ein passender Hashwert muss dazu

Und wie kommt man an den Algorithmus dafür?

Codewalker 22. Sep 2009 18:55

Re: Cover von Amazon?
 
Ich habs nicht mehr im Kopf, aber es der Name war angegeben - ist kein Algorithmus von Amazon

Edit: Es ist ein HMAC Hash mit dem SHA256 Algorithmus gemäß RFC 2104
Ein Demo für C# gibt's wohl hier: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2481&categoryID=14

Cylence 23. Sep 2009 08:43

Re: Cover von Amazon?
 
Hi,

was ist das für eine unschöne variante mit ner 3rd Party Komponente? Würde mich interessieren. Ich find dazu nichts.


Gruß

tom

Codewalker 23. Sep 2009 15:24

Re: Cover von Amazon?
 
Zitat:

Zitat von Cylence
Was ist das für eine unschöne variante mit ner 3rd Party Komponente? Würde mich interessieren. Ich find dazu nichts.

Siehe hier: http://www.delphipraxis.net/internal...036119#1036119

Cylence 23. Sep 2009 15:31

Re: Cover von Amazon?
 
cool thanx :-)

mlspider 23. Sep 2009 16:18

Re: Cover von Amazon?
 
So Leute, ich habe es geschafft mein Cover-Load auf die AWS Version 4.0 umzustellen.

Da sich ja leider bei Amazon ab dem 08.08.2009 leider bei Amazon einiges geändert hat, ist das Abrufen von Cover wesentlich erschwert worden. Vor den oben genannten Datum funktioniert folgende Variant einwandfrei.

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, JvGIF, StdCtrls, InvokeRegistry, Rio,
  SOAPHTTPClient, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, ComCtrls, amazonwebservices;

procedure TCover.Button3Click(Sender: TObject);
var AmazonService : AmazonSearchPort;
    myrequest    : KeywordRequest;
    ret          : ProductInfo;
begin
  myrequest       := KeywordRequest.Create;
  HTTPRio1.WSDLLocation := 'http://soap-eu.amazon.com/schemas3/AmazonWebServices.wsdl';
  try
    myrequest.keyword := Edit1.Text;
    myrequest.page   := '1';
    myrequest.mode   := 'music-de';
    myrequest.sort   := '+salesrank';
    myrequest.tag    :='webservices-20';
    myrequest.type_   :='lite';
    myrequest.devtag := 'xxxxxxxxxxxxxxxxxxxxx';
    myrequest.locale :='de';
    ret:=ProductInfo.Create;
    try
      try
        Amazonservice := HTTPRio1 as AmazonSearchPort;
        ret:=AmazonService.KeywordSearchRequest(myrequest);
      except
        exit;
      end;

  {process Productinfo} 
    finally
      ret.free;
    end;
  finally
    myrequest.free;
  end;
end;
Jetzt greife ich via PHP über mein Tool (Delphi) auf den AWS zu.

Hier der Beweis:

http://identy-design.de/beam/screen/Cover.jpg

Und wenns interessiert, poste ich nachher mal meine vollständige Lösung.

Mithrandir 23. Sep 2009 16:24

Re: Cover von Amazon?
 
Zitat:

Zitat von mlspider
Und wenns interessiert, poste ich nachher mal meine vollständige Lösung.

*interessiert*

;)

mlspider 23. Sep 2009 16:26

Re: Cover von Amazon?
 
Ich habe leider jetzt noch einen Zahnarzttermin. Danach poste ich die vollstänig Lösung.

mlspider 23. Sep 2009 18:54

Re: Cover von Amazon?
 
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!!!!! :-D

Ich hoffe es war bis hier alles verständlich. Wenn nicht einfach posten.

mlspider 23. Sep 2009 20:05

Re: Cover von Amazon?
 
Teil 2

Nun kommt der Delphi-Teil

Oberfläche:

Wir benötigen 3 Edit-Kompos, 1 Indy-HTTP-Client, 4 Labels, 1 Memo, 1 Button, 1 Image-Kompo und ein TWebBrowser.

Schiebt euch die Kompos nach belieben zusammen, da die meisten Kompos, bis auf Image1, Edit1, Button1, TWebBrowser nicht sichtbar sind. (Eigenschaften - Visible)

Setzt nun die Eigenschaft Width von TWebBrowser auf 0. Damit ist dieser auch nicht mehr zur Laufzeit zu sehen.

Der Quelltext:

Delphi-Quellcode:
unit CoverUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, ExtCtrls, DynamicSkinForm,
  SkinCtrls;

type
  TCover = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    WebBrowser1: TWebBrowser;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    Edit3: TEdit;
    Image1: TImage;
    Label3: TLabel;
    Label4: TLabel;
    spDynamicSkinForm1: TspDynamicSkinForm;
    spSkinPanel1: TspSkinPanel;
    procedure Button1Click(Sender: TObject);
    procedure WebBrowser1DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    FTime: Longword;
    FBytes: Longword;
  public
    { Public-Deklarationen }
  end;

var
  Cover: TCover;

implementation

{$R *.dfm}

//Werte an die PHP übergeben
//Hier werden alle benötigten Infos an unser Script Get-Methodenmäßig übergeben
procedure TCover.Button1Click(Sender: TObject);
var rubrik, seite, schluesselwort, check: String;
begin
 rubrik:='Music';
 seite:='1';
 schluesselwort:=Edit1.Text;
 check:='nennen wir diesen jetzt mal "sehr einfallsreich';
 WebBrowser1.Navigate('http://euer Server.de/Dateiname des Scripts.php?rubrik1='+rubrik+'&seite1='+seite+'&schluesselwort1='+schluesselwort+'&check1='+check);
end;

//Unser Script gibt nun die korrekte URL zum gesuchten Begriff aus
// Diese URL (vielmehr datei downloaden wir jetzt
//Danach parsen wir die Datei in das Memo1 und löschen diese wieder von unserer Festplatte
//Aus Memo1 wird nun das gewünschte Bild(URL) gefiltert und an Edit3 aufbereitet übergeben.
//Jetzt wird Die Datei runtergeladen und in Image1 angezeigt
procedure TCover.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var DownloadStream: TFilestream;
    Liste: TStrings;
    myString : String;
    ipString : String;
    i     : Integer;
begin
 Label1.Caption:=ExtractFilePath(ParamStr(0))+
    'Conf\data\temp.html';
 Label4.Caption:=ExtractFilePath(ParamStr(0))+
    'Conf\data\temp.jpg';
 Edit2.Text:=WebBrowser1.LocationURL;
 Label2.Caption:=Edit2.Text;
 DownloadStream := TFileStream.Create(Label1.Caption,fmCreate);
  try
    IDHTTP1.Get(Label2.Caption, downloadstream);
  finally
    DownloadStream.Free;
  Liste := TStringlist.Create;
  Liste.LoadFromFile(Label1.Caption);
  Memo1.Lines.AddStrings(Liste);
  Liste.Free;
  myString := Memo1.Text;
  i := Pos ('ecx',mystring);
  Delete (myString,1,i);
  i := Pos ('"',mystring);
  ipString := Copy(myString,1,i-1);
  Edit3.Text := 'http://e'+ipString;
  Memo1.Clear;
  DeleteFile(Label1.Caption);
  DownloadStream := TFileStream.Create(Label4.Caption,fmCreate);
  IDHTTP1.Get(Edit3.Text, downloadstream);
  DownloadStream.Free;
  Image1.Picture.LoadFromFile(Label4.Caption);
  end;
end;

end.
Das wars. Ich wünsche nun viel Spass beim nachbauen. Sollte es Schwierigkeiten, Verbesserungsvorschläge und/oder Kritik geben, einfach posten. Auch ich bin nicht perfekt!!! :stupid:

Auch Erfolgsergebnisse könnt ihr mir posten. Eine PN tuts auch.

lg, Mario

PS: An Euch Moderatoren: Wenn ihr der Meinung seit, dass dies ein Eintrag in der Code-Libary wert ist, dann nichts wie rein damit. Das wäre denn mein erstes Example. :-D

Logic 29. Apr 2010 22:29

Re: Cover von Amazon?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey mlspider,
du scheinst dich schon etwas mit AWS beschäftigt zu haben. Vielleicht kannst du mir weiterhelfen. Mein Problem ist jetzt nicht so kompliziert wie deins, geht nur um Standard-Produktdaten.

Ich versuche schon seit ein paar Tagen amazon dazu zu bringen anstatt nach einer ASIN nach einer EAN zu suchen. Hast du eine Idee wie ich den angehängten Code abändern könnte?
Mit der ASIN funktioniert es ohne Probleme, nur wenn ich den Typ auf EAN stelle und auch den Paramter ItemIndex hinzufüge, geht es immer noch nicht.

mlspider 30. Apr 2010 10:49

Re: Cover von Amazon?
 
Wird die EAN überhaupt auf Amazon ausgegeben?

Logic 30. Apr 2010 11:08

Re: Cover von Amazon?
 
Zitat:

Zitat von mlspider
Wird die EAN überhaupt auf Amazon ausgegeben?

Also auf der amazon webpage soviel ich weiß nicht. Aber wir grefein ja auf das AWS zu oder?
Laut "Product Advertising API" kann beim ItemLookup der IdType auch eine EAN sein: http://docs.amazonwebservices.com/AW...temLookup.html

deswegen hab ich meinen Request so angepasst, aber es klappt nicht.

Code:
$requestparms = 'AWSAccessKeyId='.$ACCESS_KEY_ID.'&AssociateTag=ws&IdType=EAN&ItemId=4010884534207&Operation=ItemLookup&SearchIndex=DVD&ResponseGroup=Request,Small&Service=AWSECommerceService&Timestamp='.$timestamp.'&Version=2009-10-01';
die API hat folgendes Beispiel, aber ich habe alle Parameter ausm Beispiel übernommen:

Code:
 In the following request, the ItemId is an EAN, which requires that you also specify the SearchIndex and ItemType.

[url]http://ecs.amazonaws.com/onca/xml?[/url]
Service=AWSECommerceService&
AWSAccessKeyId=[AWS Access Key ID]&
Operation=ItemLookup&
ItemId=[EAN]&
SearchIndex=Electronics&
IdType=EAN
&Timestamp=[YYYY-MM-DDThh:mm:ssZ]
&Signature=[Request Signature]
Und Signatur und Timestamp müssen richtig sein, weil für die ASIN funktioniert ja der Request, und ich änder ja nix als den Paramter ab. Und die Signatur wird ja für den Parameter entsprechend neuberechnet.

Logic 6. Mai 2010 11:21

Re: Cover von Amazon?
 
Habt ihr ne Idee?

ilse2005 3. Dez 2010 16:40

AW: Cover von Amazon?
 
ich hab das Beispiel mal kopiert und wollte es laufen lassen.
Aber es kommt immer eine Fehlermeldung:
"Parse eeor: systeax error, unxepectet T_String in "....php" on line 153"
In line153 steht:
" Treffer insgesamt: ".$Ergebnisse->TotalResults);"
Was kann ich da machen?
Hab von PHP absolut keinen Plan...

p80286 3. Dez 2010 17:35

AW: Cover von Amazon?
 
Also auch wenn ich von PHP überhaupt keine Ahnung habe, das ist nicht das was bei Dir erscheint:
Code:
foreach ($response->Items as $Ergebnisse) {
   
//echo ("
 Treffer insgesamt: ".$Ergebnisse->TotalResults);
//echo (" auf ".$Ergebnisse->TotalPages. " Seiten");  

}
Vielleicht wäre es Hilfreich einmal Kommentare und Strings zu überprüfen.

Gruß
K-H

ilse2005 4. Dez 2010 22:08

AW: Cover von Amazon?
 
kann mir niemand helfen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz