如何在Etsy API中获取项目详细信息+图像?

时间:2015-10-07 14:25:32

标签: etsy

我不确定这是不是要问的地方,但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

当然不可能是对的?所以我们必须这样做:

  • 获取Feed的1 api密钥请求
  • 200 x api请求获取图片网址

肯定有更好的方法吗?

我全神贯注于建议,因为这让我疯狂。

4 个答案:

答案 0 :(得分:5)

根据etsy论坛,您应该可以通过在通话结束时添加“includes = MainImage”来获取图片。

答案 1 :(得分:1)

如果你正在使用(或可以使用)jQuery,那么我建议循环遍历每个列表并通过AJAX显示它们。从API调用返回的JSON数据如下所示:

Etsy Data

这是一个大的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”来获取图像。

这将返回带有所有图像的列表。