一直在看EBAY api教程
但是我想知道如何通过使用findItemsAdvanced操作按照类别和关键字进行搜索,我真的不知道这里有什么尝试使它工作但我得到的是一个空页面。这是html:
<html>
<head>
<title>eBay Search Results</title>
<style type="text/css">body { font-family: arial,sans-serif;} </style>
</head>
<body>
<h1>eBay Search Results</h1>
<div id="results"></div>
<script>
//Parse the response and build an HTML table to display search results
function _cb_findItemsAdvanced(root) {
var items = root.findItemsByKeywordsResponse[0].searchResult[0].item || [];
var html = [];
html.push('<table width="100%" border="0" cellspacing="0" cellpadding="3"><tbody>');
for (var i = 0; i < items.length; ++i) {
var item = items[i];
var title = item.title;
var pic = item.galleryURL;
var viewitem = item.viewItemURL;
var price = item.sellingStatus[0].currentPrice[0].__value__;
if (null != title && null != viewitem) {
html.push('<tr><td>' + '<img src="' + pic + '" border="0">' + '</td>' +
'<td><a href="' + viewitem + '" target="_blank">' + title + '</a></td>'+ '<td>' + price + "$" + '</td></tr>');
}
}
html.push('</tbody></table>');
document.getElementById("results").innerHTML = html.join("");
} // End _cb_findItemsByKeywords() function
//Construct the request
//Replace MyAppID with your Production AppID
var url = "http://svcs.ebay.com/services/search/FindingService/v1";
url += "?OPERATION-NAME=findItemsAdvanced";
url += "&SERVICE-VERSION=1.0.0";
url += "&SECURITY-APPNAME=AppID";
url += "&GLOBAL-ID=EBAY-US";
url += "&RESPONSE-DATA-FORMAT=JSON";
url += "&callback=_cb_findItemsAdvanced";
url += "&REST-PAYLOAD";
url += "&categoryId=1"; // video game
url += "&keywords=digimon%20world%201"; // change value to game title
url += "&paginationInput.entriesPerPage=6";
//Submit the request
s=document.createElement('script'); // create script element
s.src= url;
document.body.appendChild(s);
</script>
</body>
</html>
答案 0 :(得分:4)
您的代码中存在两个轻微错误。
第一个是categoryId - 在您的示例中,您指定的是categoryId=1
。对于美国eBay网站上的视频游戏,这应该是categoryId=139973
。这样就可以在API调用中为您提供结果。
第二个问题是你来解析第13行的API调用:
var items = root.findItemsByKeywordsResponse[0].searchResult[0].item || [];
您的代码正在寻找findItemsByKeywordsResponse
,但您的API调用是findItemsAdvanced
- 因此您需要将Javascript函数中的行更改为:
var items = root.findItemsAdvancedResponse[0].searchResult[0].item || [];
我刚试过这个,它完美无缺!