![]() |
Cover von Amazon?
Ich suche eine Möglichkeit diverse Cover von Amazon zu beziehen. Hat vielleicht irgend wer einen Lösungsansatz?
|
Re: Cover von Amazon?
Du brauchst einen Api Key von Amazon dafür. Such mal hier in der Dp nach Amazon.
|
Re: Cover von Amazon?
Amazon hat dafür eine
![]() |
Re: Cover von Amazon?
Hmm. Nur leider lässt sich diese API nicht finden. Werde nochmals meine Brille putzen.
|
Re: Cover von Amazon?
Erstell dir einen Account und die werden dir eine geben. (Vermute ich)
|
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.
|
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:
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).
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; |
Re: Cover von Amazon?
Zitat:
|
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 ![]() |
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 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