2012-05-20 13 views
10

eBay API'sını kullanarak büyük bir öğe görüntüsünü nasıl edinebilirim? Aşağıdaki API çağrısı, galleryURL'u kullandığımda küçük resim döndürüyor. PictureURLLarge ile değiştirmeyi denedim, ancak bu bir URL döndürmedi.eBay API - Büyük öğe resimleri nasıl elde edilir?

(bahsettiğim çizgi alttan 16 geçerli: $ pic = $ item-> GALLERYURL;)

// API request variables 
     $endpoint = 'http://svcs.ebay.com/services/search/FindingService/v1'; // URL to call 
     $version = '1.11.0'; // API version supported by your application 
     $appid = 'XXXXX'; // Replace with your own AppID 
     $globalid = 'EBAY-US'; // Global ID of the eBay site you want to search (e.g., EBAY-DE) 
     $query = "soft thin (shirt, tshirt, t-shirt)"; // Supply your own query 
     $safequery = urlencode($query); // Make the query URL-friendly 
     $i = '0'; // Initialize the item filter index to 0 

     // Create a PHP array of the item filters you want to use in your request 
     $filterarray = 
     array(
      array(
      'name' => 'MaxPrice', 
      'value' => '1500', 
      'paramName' => 'Currency', 
      'paramValue' => 'USD'), 
      array(
      'name' => 'FreeShippingOnly', 
      'value' => 'false', 
      'paramName' => '', 
      'paramValue' => ''), 
      array(
      'name' => 'ListingType', 
      'value' => array('AuctionWithBIN','FixedPrice','StoreInventory'), 
      'paramName' => '', 
      'paramValue' => ''), 
     ); 

     // Generates an indexed URL snippet from the array of item filters 
     function buildURLArray ($filterarray) { 
     global $urlfilter; 
     global $i; 
     // Iterate through each filter in the array 
     foreach($filterarray as $itemfilter) { 
      // Iterate through each key in the filter 
      foreach ($itemfilter as $key =>$value) { 
      if(is_array($value)) { 
       foreach($value as $j => $content) { // Index the key for each value 
       $urlfilter .= "&itemFilter($i).$key($j)=$content"; 
       } 
      } 
      else { 
       if($value != "") { 
       $urlfilter .= "&itemFilter($i).$key=$value"; 
       } 
      } 
      } 
      $i++; 
     } 
     return "$urlfilter"; 
     } // End of buildURLArray function 

     // Build the indexed item filter URL snippet 
     buildURLArray($filterarray); 

     // Construct the findItemsAdvanced HTTP GET call 
     $apicall = "$endpoint?"; 
     $apicall .= "OPERATION-NAME=findItemsAdvanced"; 
     $apicall .= "&SERVICE-VERSION=$version"; 
     $apicall .= "&SECURITY-APPNAME=$appid"; 
     $apicall .= "&GLOBAL-ID=$globalid"; 
     $apicall .= "&descriptionSearch=true"; 
     $apicall .= "&categoryId=110"; 
     $apicall .= "&keywords=$safequery"; 
     $apicall .= "&paginationInput.entriesPerPage=100"; 
     $apicall .= "$urlfilter"; 

     // Load the call and capture the document returned by eBay API 
     $resp = simplexml_load_file($apicall); 

     // Check to see if the request was successful, else print an error 
     if ($resp->ack == "Success") { 
     $results = ''; 
     // If the response was loaded, parse it and build links 
     foreach($resp->searchResult->item as $item) { 
      $pic = $item->galleryURL; 
      $link = $item->viewItemURL; 
      $title = $item->title; 
      $ship = (float) $item->shippingInfo->shippingServiceCost; 
      $price = (float) $item->sellingStatus->currentPrice; 
      $sell = ($ship + $price); 

      // For each SearchResultItem node, build a link and append it to $results 
      $results .= "<a href=\"$link\" title=\"$title\" target=\"_blank\"><div class=\"shirt-block\"><img src=\"$pic\" width=\"200\" height=\"200\"><br /><br /><span class=\"cost\">$$sell</span></div></a>"; 
     } 
     } 
     // If the response does not indicate 'Success,' print an error 
     else { 
     $results = "<h3>Oops! The request was not successful. Make sure you are using a valid "; 
     $results .= "AppID for the Production environment.</h3>"; 
     } 
+0

Döngüde var_dump ($ item) 'olabilir mi? Ayrıca, '$ item-> pictureURLLarge' (büyük/küçük harfe duyarlı) denediniz mi? –

+1

Sorunu keşfettim ve bu gerçekten aptalca. Açıklama aramasını "true" olarak ayarlamak, pictureURLLarge'ı almanıza izin veren outputSelector özelliğini kullanma özelliğini devre dışı bırakır. Bilmiyorum neden ... ağlamak istememi sağlıyor. – Carson

cevap

7

Eğer eBay Forum?

sağlanan en son yöntem denedi mi

Sizi açıklamaya ve yönlendirmeye yardımcı olabilirim.

Bu üye, findItemsAdvanced isteğinizin yapısına $apicall .= "&outputSelector=$outputSelector";'u dahil etmeyi önerir.

Bu noktada, Firebug aracılığıyla eklenip eklenmediğini görmek için XML Dosya döndüğümüzü kontrol ediyorum (aşağıdaki NET sekmesini ve ardından XHR'yi tıklayın). Chrome'da, Geliştirici Araçları'nı etkinleştirin ve döndürülen XML Dosyasını görmek için NETWORK sekmesini tıklayın. Genişletmek için dosyaya tıklayın ve içeriği boşluk bırakmadan göreceksiniz.

XML dosyası güzel olmayacağından, içeriği kopyalayın ve okunabilirlik açısından güzelleştirmek için HERE dosyasını yapıştırın. pictureURLLarge ve gösterilen pictureURLSuperSize hem sahiptir

Örnek XML dosyası HERE.

Büyük resim için URL XML dosyasına dahil edildiğini doğruladıktan sonra

, ikinci aşama ise aşağıdaki gibi İşaretlemenize onu kullanmaktır: Maalesef

$pic = $item->pictureURLLarge; 

veya

$pic = $item->pictureURLSuperSize; 

Ben kendi eBay AppID benim test yok ve onların API Playground bağlantı bozuk değil ama daha fazla yardımcı olabilir herhangi bir şey belirsizdir.

emin olmak için, ilk adım Büyük Resim isteğini elde etmektir ve ikinci aşama basitçe görüntüyü kullanmaktır.

+0

Çabalarınız için teşekkür ederiz. Daha önce cevap vermediğim için üzgünüm, ama hiçbir internet bağlantısı olmadan Meksika'da bulundum. Yukarıda ne söylediğini denedim, ama ben ateş böceği kullandığımda bir xml dosyası görmüyorum. Web sitesi: http://shirtcake.com/ Belki daha fazla bir şey görebiliyor musunuz? – Carson

+0

Kapanış gövdesi etiketinin ilk örneği, ikinci biriniz olduğundan kaldırılmalıdır. Bu ilk kapanış gövde etiketinin altında jQuery v1.71'in başka bir örneği bulunurken, daha önce kuzeye bakarsanız v1.6.4 yüklüdür. Ben ebay yapmak için herhangi bir istek görmüyorum ne de postalanan yukarıdaki işaretleme herhangi birini görmüyorum. Nerede? – arttronics

+0

Hum, belki de PHP'nin sizin kullandığınız işlemle ilgili bir hatadır. Bu [eBay öğreticisi] (http: //developer.ebay.com/devzone/finding/HowTo/PHP_SearchInterm_NV_XML/PHP_SearchInterm_NV_XML.html) PHP işleminin doğru olduğundan emin olmak için indirilebilir proje dosyalarını ve adım adım talimatları içerir. Ayrıca, PHP sürecinin kendi önerilerine göre oluşturulmasına/ayarlanmasına yardımcı olması için sizinkine benzer işaretleme gösteren PHP dosyaları da vardır. Bu yardımcı olur mu? – arttronics

İlgili konular