2011-01-21 7 views
5

¿Alguien sabe de algún buen ejemplo, o se preocupe de explicar cómo hacer una búsqueda de Amazon similar a esto, http://blogs.msdn.com/b/coding4fun/archive/2006/10/31/912260.aspx, yo solo usaría esto, pero parece estar desactualizado y la fuente es ya no está disponible. Ideal Lo que me gustaría poder hacer es buscar elementos en cualquier palabra clave como "Star Trek" o en línea recta hacia arriba. Lo que me gustaría recuperar es título, descripción, año y un enlace a una imagen, tipo (dvd, libros, música). Cualquier ayuda sería genial, gracias.ASP.NET Amazon ItemSearch

Respuesta

1

El SprightlySoft AWS para .NET Componente le permite interactuar hará Producto API para Publicidad de Amazon. Aquí hay un código de muestra para buscar un artículo basado en UPC. Obtenga el componente gratis en http://sprightlysoft.com/. El componente viene con un código de muestra que le muestra cómo hacer un ItemSearch con la API de publicidad de productos.

//Product Advertising API, ItemLookup: http://docs.amazonwebservices.com/AWSECommerceService/2010-10-01/DG/ItemLookup.html 

SprightlySoftAWS.REST MyREST = new SprightlySoftAWS.REST(); 

String RequestURL; 
RequestURL = "https://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&Operation=ItemLookup&Version=2010-10-01"; 
RequestURL += "&AWSAccessKeyId=" + System.Uri.EscapeDataString(TextBoxAWSAccessKeyId.Text) + "&SignatureVersion=2&SignatureMethod=HmacSHA256&Timestamp=" + Uri.EscapeDataString(DateTime.UtcNow.ToString("yyyy-MM-dd\\THH:mm:ss.fff\\Z")); 
RequestURL += "&ItemId=025192022272"; 
RequestURL += "&IdType=UPC"; 
RequestURL += "&SearchIndex=DVD"; 

String RequestMethod; 
RequestMethod = "GET"; 

String SignatureValue; 
SignatureValue = MyREST.GetSignatureVersion2Value(RequestURL, RequestMethod, "", TextBoxAWSSecretAccessKey.Text); 

RequestURL += "&Signature=" + System.Uri.EscapeDataString(SignatureValue); 

Boolean RetBool; 
RetBool = MyREST.MakeRequest(RequestURL, RequestMethod, null); 
System.Diagnostics.Debug.Print(MyREST.LogData); 

if (RetBool == true) 
{ 
    String ResponseMessage = ""; 
    System.Xml.XmlDocument MyXmlDocument; 
    System.Xml.XmlNamespaceManager MyXmlNamespaceManager; 
    System.Xml.XmlNode MyXmlNode; 
    System.Xml.XmlNodeList MyXmlNodeList; 

    MyXmlDocument = new System.Xml.XmlDocument(); 
    MyXmlDocument.LoadXml(MyREST.ResponseString); 

    MyXmlNamespaceManager = new System.Xml.XmlNamespaceManager(MyXmlDocument.NameTable); 
    MyXmlNamespaceManager.AddNamespace("amz", "http://webservices.amazon.com/AWSECommerceService/2010-10-01"); 

    MyXmlNodeList = MyXmlDocument.SelectNodes("amz:ItemLookupResponse/amz:Items/amz:Item", MyXmlNamespaceManager); 

    if (MyXmlNodeList.Count == 0) 
    { 
     ResponseMessage = "Item not found."; 
    } 
    else 
    { 
     foreach (System.Xml.XmlNode ItemXmlNode in MyXmlNodeList) 
     { 
      MyXmlNode = ItemXmlNode.SelectSingleNode("amz:ItemAttributes/amz:Title", MyXmlNamespaceManager); 
      ResponseMessage += "Title = " + MyXmlNode.InnerText; 

      ResponseMessage += Environment.NewLine; 
     } 
    } 

    MessageBox.Show(ResponseMessage); 
} 
else 
{ 
    MessageBox.Show(MyREST.ResponseStringFormatted); 
} 
+0

¿Sabes si hay alguna manera de hacer que Amazon devuelva más de 10 artículos a la vez? – nagates

+0

La información se encuentra en la documentación. Consulte http://docs.amazonwebservices.com/AWSECommerceService/2010-10-01/DG/index.html?ItemLookup.html. Cada solicitud de ItemLookup puede devolver, como máximo, diez artículos relacionados. – Anton

+0

Esas concatenaciones de cadena son un poco desagradables. – UpTheCreek

4

escribí un pequeño C# Wrapper for Amazon ItemLookup que da vuelta un gráfico de objetos útiles. Solo es compatible con ItemLookup en este momento. Tengo la fuente arriba on BitBucket.

Puede realizar llamadas como:

var item = client.LookupByAsin("B0037X9N5U"); 
double? price = item.GetLowestPrice(); 
1

Hola es muy fácil con la siguiente Nuget Nager.AmazonProductAdvertising paquete

Nuget

PM> Install-Package Nager.AmazonProductAdvertising 

Ejemplo

var authentication = new AmazonAuthentication(); 
authentication.AccessKey = "accesskey"; 
authentication.SecretKey = "secretkey"; 

var wrapper = new AmazonWrapper(authentication, AmazonEndpoint.DE); 
var result = wrapper.Lookup("B0037X9N5U");