我正在使用npm's ebay module向Ebay的api请求符合特定条件的项目,主要是他们的关键字以及他们与邮政编码的距离。我想使用Ebay的api ItemFilterType来设置MaxDistance
,这是过滤器类型之一以及文档状态
“指定与指定邮政编码的最大距离 (buyerPostalCode)搜索项目。请求还必须指定 buyerPostalCode“。
我正在设置params,正如ebay
模块所述,只有我尝试添加itemFilterTYPE和MaxDistance过滤器,但它不起作用。如何将itemFilterType参数添加到我的调用中,以便过滤掉不在某个邮政编码中的项目?
我正在尝试以下内容:
var params = {
'OPERATION-NAME': 'findItemsByKeywords',
'keywords': 'shoes',
'itemFilter': 'MaxDistance',
'buyerPostalCode': 94506
}
答案 0 :(得分:0)
我最终将模块切换到ebay-api,这与我之前使用的模块略有不同,但与ebay api文档更加一致。
你告诉ebay buyerPostalCode(邮政编码)如下:
var params = {};
params.keywords = [ 'Harry Potter stuff' ];
params.buyerPostalCode = ['94101'];
要设置过滤器,特别是MaxDistance
,请执行以下操作:
filters.itemFilter = [
new ebay.ItemFilter("FreeShippingOnly", false),
new ebay.ItemFilter('MaxDistance','5'),
new ebay.ItemFilter('MinPrice','10'),
new ebay.ItemFilter('MaxPrice','55')
];
您可以按照以下方式提出请求(这是straight from the docs example):
ebay.paginateGetRequest({
serviceName: 'FindingService',
opType: 'findItemsAdvanced',
appId: '......................', // FILL IN YOUR OWN APP KEY, GET ONE HERE: https://publisher.ebaypartnernetwork.com/PublisherToolsAPI
params: params,
filters: filters,
pages: pages,
perPage: perPage,
parser: ebay.parseItemsFromResponse
},
// gets all the items together in a merged array
function allItemsCallback(error, items) {
if (error) throw error;
console.log('Found', items.length, 'items from', pages, 'pages');
for (var i = 0; i < items.length; i++) {
console.log(items[i]);
}
}
);