我不确定这是不是要问的地方,但Etsy开发人员支持的回复速度非常慢(等待4天,这只是为了看看我是否可以继续这个项目 - 因为我没有我想打破他们的服务条款。无论如何,除此之外......
我有一个我要向用户提供的脚本,可以调用以下Feed :(使用此处的详细信息:https://www.etsy.com/developers/documentation/getting_started/requests)
https://openapi.etsy.com/v2/shops/%s/listings/active?method=GET&api_key=$etsy_key&limit=200
然后,那将获得他们在商店出售的物品。到现在为止还挺好。一个小问题......没有图像!!!现在,根据他们的文档(https://www.etsy.com/developers/documentation/getting_started/images),它说你必须为每个项目做一次请求!
https://openapi.etsy.com/v2/listings/ITEM_ID/images/?api_key=xxxx
当然不可能是对的?所以我们必须这样做:
肯定有更好的方法吗?
我全神贯注于建议,因为这让我疯狂。
答案 0 :(得分:5)
根据etsy论坛,您应该可以通过在通话结束时添加“includes = MainImage”来获取图片。
答案 1 :(得分:1)
如果你正在使用(或可以使用)jQuery,那么我建议循环遍历每个列表并通过AJAX显示它们。从API调用返回的JSON数据如下所示:
这是一个大的JSON对象,其中包含每个列表的特定数据,包括图像/维度,因此您需要单独抓取每个列表(请参阅结果数组)。
一种方法是在for
回调中使用success
循环。然后,您可以为所需的每个值分配变量(使用点表示法来解析JSON),然后使用这些变量构建HTML。
$(document).ready(function () {
// global variables
var url = 'https://openapi.etsy.com/v2/listings/active.js?includes=MainImage',
key = '9njigunpqge5htjynd9uu52f',
limit = 25; // etsy api maximum
// get data
$.ajax({
url: url,
data: {
api_key: key,
limit: limit,
},
dataType: 'jsonp',
success: function (data) {
// log etsy data
console.log(data);
// for each listing... *
for (var i = 0; i < data.results.length; i++) {
// * assign listing variables
var item = data.results[i];
var url = item.url;
var image = item.MainImage.url_570xN; // 75x75, 170x135, 570xN, fullxfull
var title = item.title;
var price = item.price;
var quantity = item.quantity;
// * build html structure for each listing
var result = $('<div class="item">\
<div class="item-image">\
<a href="' + url + '"><img src="' + image + '"/></a>\
</div>\
<div class="item-details">\
<p class="item-title">' + title + '</p>\
<p class="item-price">$' + price + '</p>\
<p class="item-quantity">' + quantity + ' left</p>\
</div>\
</div>');
// * append listings
$('#some-element').append(result);
}
}
});
});
此处列出了API中可用的图片尺寸:https://www.etsy.com/developers/documentation/reference/listingimage。
如果你想看一下,我最近在http://codepen.io/markhillard/pen/mErRPk创建了一个功能更全面的Etsy商店。
希望这有帮助。
答案 2 :(得分:1)
要获取商品详情,您可以使用 ETSY API 的 getListing 方法和 getInventory 调用以获取变体和其他详细信息。
要获取项目的图像,请使用 findAllListingImages 调用 ETSY API
答案 3 :(得分:0)
这是正确的答案。
根据etsy api文档,您应该能够通过在调用结束时添加“ includes = Images”来获取图像。
这将返回带有所有图像的列表。