Amazon WS - Récupérer le prix d'un produit
7 messages
• Page 1 sur 1
- Nilav
- Nouveau WRInaute

- Messages: 13
- Inscription: 8 Mar 2010
Amazon WS - Récupérer le prix d'un produit
Bonsoir,
Je suis inscrit à AWS, j'ai mon identifiant et ma clé secrète. Après des heures de recherche, j'ai trouvé comment créer une signature nécessaire pour faire les requêtes en utilisant un script trouvé sur le net. Toutefois, j'ai deux problèmes, l'un que je pense pouvoir régler seul, il me sort le XML directement sur ma page mais ça, c'est parce que le script lui dit de le faire.
En revanche, mon vrai problème, c'est que le XML ne contient pas le prix du produit que je lui ai demandé de récupéré.
En testant les quelques liens qu'il fournit, notamment les images, j'ai pu constater qu'il récupérait le bon produit.
Voici le code que j'utilise
Si vous avez quelque chose qui fonctionne, ça m'intéresse, notamment directement de la bibliothèque d'Amazon, je n'ai rien trouvé car tous les liens sur lesquels je tombe sont morts ou ne date pas de la dernière MAJ de l'API. Alors je ne sais pas trop où chercher tellement il y a de contenu.
Concernant mon besoin, je n'ai besoin que d'une seule chose, le prix d'un produit particulier. Même le titre du produit j'm'en fous
Merci d'avance, en espérant avoir posté au bon endroit.
Je suis inscrit à AWS, j'ai mon identifiant et ma clé secrète. Après des heures de recherche, j'ai trouvé comment créer une signature nécessaire pour faire les requêtes en utilisant un script trouvé sur le net. Toutefois, j'ai deux problèmes, l'un que je pense pouvoir régler seul, il me sort le XML directement sur ma page mais ça, c'est parce que le script lui dit de le faire.
En revanche, mon vrai problème, c'est que le XML ne contient pas le prix du produit que je lui ai demandé de récupéré.
En testant les quelques liens qu'il fournit, notamment les images, j'ai pu constater qu'il récupérait le bon produit.
Voici le code que j'utilise
- Code: Tout sélectionner
<?
$AWSAccessKeyId = "***";
$SecretAccessKey = "***";
$ItemId = "B004ASORCU"; // ASIN
$Timestamp = gmdate("Y-m-d\TH:i:s\Z");
$Timestamp = str_replace(":", "%3A", $Timestamp);
$ResponseGroup = "ItemAttributes,Offers,Images,Reviews";
$ResponseGroup = str_replace(",", "%2C", $ResponseGroup);
$String = "AWSAccessKeyId=$AWSAccessKeyId&
ItemId=$ItemId&
Operation=ItemLookup&
ResponseGroup=$ResponseGroup&
Service=AWSECommerceService&
Timestamp=$Timestamp&
Version=2009-01-06";
$String = str_replace("\n", "", $String);
$Prepend = "GET\nwebservices.amazon.com\n/onca/xml\n";
$PrependString = $Prepend . $String;
$Signature = base64_encode(hash_hmac("sha256", $PrependString, $SecretAccessKey, True));
$Signature = str_replace("+", "%2B", $Signature);
$Signature = str_replace("=", "%3D", $Signature);
$BaseUrl = "http://webservices.amazon.com/onca/xml?";
$SignedRequest = $BaseUrl . $String . "&Signature=" . $Signature;
$XML = simplexml_load_file($SignedRequest);
echo '<a href="'.$SignedRequest.'">XML</a><p>';
print_r ($XML);
?>
Si vous avez quelque chose qui fonctionne, ça m'intéresse, notamment directement de la bibliothèque d'Amazon, je n'ai rien trouvé car tous les liens sur lesquels je tombe sont morts ou ne date pas de la dernière MAJ de l'API. Alors je ne sais pas trop où chercher tellement il y a de contenu.
Concernant mon besoin, je n'ai besoin que d'une seule chose, le prix d'un produit particulier. Même le titre du produit j'm'en fous
Merci d'avance, en espérant avoir posté au bon endroit.
- Nilav
- Nouveau WRInaute

- Messages: 13
- Inscription: 8 Mar 2010
Re: Amazon WS - Récupérer le prix d'un produit
Récupéré de l'URL et pas du contenu envoyé sur ma page, ceci dit, c'est le même.
Merci pour ton aide
- Code: Tout sélectionner
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<ItemLookupResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Iron/11.0.700.2 Chrome/11.0.700.2 Safari/534.24"/>
</HTTPHeaders>
<RequestId>4d80ea5a-61b7-4bce-9068-e042076b1107</RequestId>
<Arguments>
<Argument Name="Operation" Value="ItemLookup"/>
<Argument Name="Service" Value="AWSECommerceService"/>
<Argument Name="Signature" Value="82SNA2204yM/3r9Je0NNRsbUyc0KjtN2rlOOSwTIpr0="/>
<Argument Name="Version" Value="2009-01-06"/>
<Argument Name="ItemId" Value="B004ASORCU"/>
<Argument Name="AWSAccessKeyId" Value="AKIAIK3FEN5J57IWVEPA"/>
<Argument Name="Timestamp" Value="2011-07-01T09:14:41Z"/>
<Argument Name="ResponseGroup" Value="ItemAttributes,Offers,Images,Reviews"/>
</Arguments>
<RequestProcessingTime>0.0119760000000000</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemLookupRequest>
<Condition>New</Condition>
<DeliveryMethod>Ship</DeliveryMethod>
<IdType>ASIN</IdType>
<MerchantId>Amazon</MerchantId>
<OfferPage>1</OfferPage>
<ItemId>B004ASORCU</ItemId>
<ResponseGroup>ItemAttributes</ResponseGroup>
<ResponseGroup>Offers</ResponseGroup>
<ResponseGroup>Images</ResponseGroup>
<ResponseGroup>Reviews</ResponseGroup>
<ReviewPage>1</ReviewPage>
<ReviewSort>-SubmissionDate</ReviewSort>
<VariationPage>All</VariationPage>
</ItemLookupRequest>
</Request>
<Item>
<ASIN>B004ASORCU</ASIN>
<DetailPageURL>
http://www.amazon.com/Top-Spin-2/dp/B004ASORCU%3FSubscriptionId%3DAKIAIK3FEN5J57IWVEPA%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB004ASORCU
</DetailPageURL>
<ItemLinks>
<ItemLink>
<Description>Technical Details</Description>
<URL>
http://www.amazon.com/Top-Spin-2/dp/tech-data/B004ASORCU%3FSubscriptionId%3DAKIAIK3FEN5J57IWVEPA%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB004ASORCU
</URL>
</ItemLink>
<ItemLink>
<Description>Add To Baby Registry</Description>
<URL>
http://www.amazon.com/gp/registry/baby/add-item.html%3Fasin.0%3DB004ASORCU%26SubscriptionId%3DAKIAIK3FEN5J57IWVEPA%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB004ASORCU
</URL>
</ItemLink>
<ItemLink>
<Description>Add To Wedding Registry</Description>
<URL>
http://www.amazon.com/gp/registry/wedding/add-item.html%3Fasin.0%3DB004ASORCU%26SubscriptionId%3DAKIAIK3FEN5J57IWVEPA%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB004ASORCU
</URL>
</ItemLink>
<ItemLink>
<Description>Add To Wishlist</Description>
<URL>
http://www.amazon.com/gp/registry/wishlist/add-item.html%3Fasin.0%3DB004ASORCU%26SubscriptionId%3DAKIAIK3FEN5J57IWVEPA%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB004ASORCU
</URL>
</ItemLink>
<ItemLink>
<Description>Tell A Friend</Description>
<URL>
http://www.amazon.com/gp/pdp/taf/B004ASORCU%3FSubscriptionId%3DAKIAIK3FEN5J57IWVEPA%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB004ASORCU
</URL>
</ItemLink>
<ItemLink>
<Description>All Customer Reviews</Description>
<URL>
http://www.amazon.com/review/product/B004ASORCU%3FSubscriptionId%3DAKIAIK3FEN5J57IWVEPA%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB004ASORCU
</URL>
</ItemLink>
<ItemLink>
<Description>All Offers</Description>
<URL>
http://www.amazon.com/gp/offer-listing/B004ASORCU%3FSubscriptionId%3DAKIAIK3FEN5J57IWVEPA%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB004ASORCU
</URL>
</ItemLink>
</ItemLinks>
<SmallImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL._SL75_.jpg
</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">65</Width>
</SmallImage>
<MediumImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL._SL160_.jpg
</URL>
<Height Units="pixels">160</Height>
<Width Units="pixels">139</Width>
</MediumImage>
<LargeImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL.jpg
</URL>
<Height Units="pixels">500</Height>
<Width Units="pixels">435</Width>
</LargeImage>
<ImageSets>
<ImageSet Category="primary">
<SwatchImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL._SL30_.jpg
</URL>
<Height Units="pixels">30</Height>
<Width Units="pixels">26</Width>
</SwatchImage>
<SmallImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL._SL75_.jpg
</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">65</Width>
</SmallImage>
<ThumbnailImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL._SL75_.jpg
</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">65</Width>
</ThumbnailImage>
<TinyImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL._SL110_.jpg
</URL>
<Height Units="pixels">110</Height>
<Width Units="pixels">96</Width>
</TinyImage>
<MediumImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL._SL160_.jpg
</URL>
<Height Units="pixels">160</Height>
<Width Units="pixels">139</Width>
</MediumImage>
<LargeImage>
<URL>
http://ecx.images-amazon.com/images/I/61HaJ9rvjIL.jpg
</URL>
<Height Units="pixels">500</Height>
<Width Units="pixels">435</Width>
</LargeImage>
</ImageSet>
<ImageSet Category="swatch">
<SwatchImage>
<URL>
http://ecx.images-amazon.com/images/I/41LHXv0oGIL._SL30_.jpg
</URL>
<Height Units="pixels">30</Height>
<Width Units="pixels">24</Width>
</SwatchImage>
<SmallImage>
<URL>
http://ecx.images-amazon.com/images/I/41LHXv0oGIL._SL75_.jpg
</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">59</Width>
</SmallImage>
<ThumbnailImage>
<URL>
http://ecx.images-amazon.com/images/I/41LHXv0oGIL._SL75_.jpg
</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">59</Width>
</ThumbnailImage>
<TinyImage>
<URL>
http://ecx.images-amazon.com/images/I/41LHXv0oGIL._SL110_.jpg
</URL>
<Height Units="pixels">110</Height>
<Width Units="pixels">87</Width>
</TinyImage>
<MediumImage>
<URL>
http://ecx.images-amazon.com/images/I/41LHXv0oGIL._SL160_.jpg
</URL>
<Height Units="pixels">160</Height>
<Width Units="pixels">127</Width>
</MediumImage>
<LargeImage>
<URL>
http://ecx.images-amazon.com/images/I/41LHXv0oGIL.jpg
</URL>
<Height Units="pixels">500</Height>
<Width Units="pixels">396</Width>
</LargeImage>
</ImageSet>
</ImageSets>
<ItemAttributes>
<Binding>Blu-ray</Binding>
<EAN>5026555402750</EAN>
<PackageDimensions>
<Height Units="hundredths-inches">63</Height>
<Length Units="hundredths-inches">669</Length>
<Weight Units="hundredths-pounds">22</Weight>
<Width Units="hundredths-inches">528</Width>
</PackageDimensions>
<PackageQuantity>1</PackageQuantity>
<Platform>PlayStation 3</Platform>
<ProductGroup>Video Games</ProductGroup>
<ProductTypeName>ABIS_VIDEO_GAMES</ProductTypeName>
<Title>Top Spin 2</Title>
</ItemAttributes>
<OfferSummary>
<TotalNew>0</TotalNew>
<TotalUsed>0</TotalUsed>
<TotalCollectible>0</TotalCollectible>
<TotalRefurbished>0</TotalRefurbished>
</OfferSummary>
<Offers>
<TotalOffers>0</TotalOffers>
<TotalOfferPages>0</TotalOfferPages>
</Offers>
</Item>
</Items>
</ItemLookupResponse>
Merci pour ton aide
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Amazon WS - Récupérer le prix d'un produit
Tu fais une requête sur Amazon US pour un produit qui n'y est pas disponible (mais qui est disponible sur Amazon.fr, qui est celui qui t'intéresse, je suppose). Il faut que tu interroges le serveur .fr et pas le .com...
Note que tu te plains que les exemples que tu as trouvés sont pour des vieilles versions, mais ton code n'est pas du tout à jour non plus (il n'utilise même pas le bon domaine), et en plus il me semble excessivement mal écrit, tous ces str_replace "custom" c'est assez horrible, ce serait nettement plus simple, et plus sûr, d'utiliser urlencode sur chaque paramètre.
Jacques.
Note que tu te plains que les exemples que tu as trouvés sont pour des vieilles versions, mais ton code n'est pas du tout à jour non plus (il n'utilise même pas le bon domaine), et en plus il me semble excessivement mal écrit, tous ces str_replace "custom" c'est assez horrible, ce serait nettement plus simple, et plus sûr, d'utiliser urlencode sur chaque paramètre.
Jacques.
- Nilav
- Nouveau WRInaute

- Messages: 13
- Inscription: 8 Mar 2010
Re: Amazon WS - Récupérer le prix d'un produit
jcaron a écrit:Tu fais une requête sur Amazon US pour un produit qui n'y est pas disponible (mais qui est disponible sur Amazon.fr, qui est celui qui t'intéresse, je suppose). Il faut que tu interroges le serveur .fr et pas le .com...
Note que tu te plains que les exemples que tu as trouvés sont pour des vieilles versions, mais ton code n'est pas du tout à jour non plus (il n'utilise même pas le bon domaine), et en plus il me semble excessivement mal écrit, tous ces str_replace "custom" c'est assez horrible, ce serait nettement plus simple, et plus sûr, d'utiliser urlencode sur chaque paramètre.
Jacques.
Merci, je m'en étais aperçu avant ce week-end et avait corrigé. Pour la propreté du code, je ne suis pas expert et s'il n'est pas à jour, je veux bien un lien, même sur le site d'Amazon qui présenterait l'outil. En attendant, je m'occuperai déjà du urlencode.
Concernant le "il n'utilise même pas le bon domaine", à la décharge du codeur, il était anglo-saxon, il n'allait donc pas chercher sur la version FR.
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Amazon WS - Récupérer le prix d'un produit
Au delà du pays, le domaine utilisé correspond à une vieille version. D'ailleurs la version de l'API demandée (qui date de 2009) est très loin d'être la dernière.
Pourquoi ne pas télécharger le SDK PHP disponible sur le site Amazon?
Jacques.
Pourquoi ne pas télécharger le SDK PHP disponible sur le site Amazon?
Jacques.
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

