问题标签 [etsy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
202 浏览

angular - jsonp 调用 Etsy

我正在尝试通过服务列出 Etsy 配置文件中的产品,使用开发人员页面中为 jsonp 提供的语法: https ://www.etsy.com/developers/documentation/getting_started/jsonp

这是我的服务:

我收到两个错误:

未捕获的 ReferenceError:未定义 getData

错误响应 {_body:“JSONP 注入脚本没有调用回调。”,状态:200,ok:true,statusText:“Ok”,标头:标头...}

0 投票
1 回答
236 浏览

jsonp - Etsy API,包括部分列表中的图像

到目前为止,我已经能够过滤调用以仅获取具有此 url 的部分中的产品:

https://openapi.etsy.com/v2/shops/FOO-USER/sections/21162893.js?callback=JSONP_CALLBACK&api_key=BAR-KEY&includes=Listings(price,title,shop_section_id,description,state,item_width,item_height)&fields=标题

问题是 Etsy api 不接受 ShopSection 的图像关联: https ://www.etsy.com/developers/documentation/reference/shopsection#section_associations

那么如何在一个部分中列出带有缩略图的产品呢?

奖励问题:即使产品实际上具有高度和宽度,Etsy 总是为 item_height 和 item_width 返回 null,这是一个错误吗?

0 投票
1 回答
226 浏览

javascript - Angular 中的 Etsy:将产品添加到访客购物车

我正在尝试将产品添加到我的来宾购物车中,在 url 中传递 guest_id,在 body 中传递 listings_id。这是方法:

我得到这个cors错误:

XMLHttpRequest 无法加载 https://openapi.etsy.com/v2/guests/akye30nuit6ua/carts?api_key=my-api-key。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:4200 ”。响应的 HTTP 状态代码为 500。

0 投票
2 回答
3112 浏览

stock - 如何使用 Etsy 的 updateInventory() 调用来更新列表的库存/价格

一旦使用listing->createListing() 最初创建列表后,如何更新列表的价格/库存对我来说根本不清楚。

为了更新股票/价格,Etsy 的文档说调用listing->updateInventory()。然而,这个调用需要一个叫做 products 的东西以及几个属性(price_on_property、quantity_on_property 和 sku_on_property):

  • Listing_id
  • 产品*
  • price_on_property
  • 数量_on_property
  • sku_on_property

在哪里:

Etsy 关于 price_on_property、stock_on_property 和 sku_on_property 的脚注增加了混乱:

price_on_property 是价格所依赖的属性的 property_ids 数组(如果有)。

quantity_on_property 是数量所依赖的属性的 property_ids 数组(如果有的话)。

sku_on_property 是 sku 所依赖的属性的 property_ids 数组(如果有)。

如果提供的产品 sku 和提供的数量和价格的值与“on_property_*”字段的提供值不兼容,则更新将失败。

提供价格时,提供等于金额除以货币资源中指定的除数的浮点数。

products 参数应该是一个产品的 JSON 数组,即使您只发送一个产品。JSON blob 中的所有字段名称都应为小写。

取自https://www.etsy.com/developers/documentation/reference/listinginventory#method_updateinventory

鉴于在 Etsy 上添加待售商品的起点只是调用 createListing() 并提供我希望出售的商品的详细信息(包括库存数量和价格),我不明白如何调用 updateInventory() 来更新这个项目的库存和/或价格,所以任何人都可以就此事提供一些澄清(是的,我已经联系了 Etsy 开发人员支持,但他们可能需要一段时间才能回复)。

0 投票
1 回答
92 浏览

javascript - 对 API 的 AJAX 调用是否被视为跨域?

我正在对我自己域上的另一个页面进行 ajax 调用。然而,在这个页面上,我对 Etsy 的 API 进行了 API 调用。我取回 JSON,将其格式化为 XML,然后echo $xml将数据返回给原始的 ajax 调用。但是,ajax.responseXML始终为空!ajax.responseText确实包含我需要的所有信息。

如果我不返回 XML 格式的 JSON,而是返回一些没有该数据的 XML,(比如... echo "<orders></orders>"),那么它就可以工作。并且 responseXML 不为空。

所以我在想,即使我的 ajax 调用正在调用我域上的另一个页面,因为该页面正在进行跨域调用(Etsy API),它违反了单源策略,这就是为什么 responseXML 为空?

这是电话:

OrderFetcher.php 包含 API 调用。

编辑

这是 php 代码 ajax 调用:

我相信我已经将其范围缩小到 API 调用或 ajax 超时。在上面的代码中,如果我注释掉 API 调用和 xml 数据,而只是执行以下操作,它“返回”很好并且ajax.responseXML不为空。

编辑 2

当我在浏览器中打开“OrderFetcher.php?function=sort”(ajax 调用)时,它会运行几秒钟(进行 API 调用)然后给我这个:


此页面包含以下错误:

第 1 行第 1 列的错误:文档为空 下面是第一个错误之前的页面渲染。


但是,由于我上面提到的这两点,我不相信 Etsy 返回的东西会导致无效的 XML:

  1. 如果我忽略 API 数据(但仍然进行 API 调用)并返回一个简单的 XML 字符串 ( echo "<tag></tag>"),那么 responseXML仍将为空,即使我没有“回显”来自 API 调用的任何数据。

这不起作用(ajax.responseXML为空):

  1. echo "<tag></tag>"如果我返回简单XML 字符串(

确实有效ajax.responseXML不为空):

0 投票
1 回答
202 浏览

php - json_decode 在使用 etsy API 时返回 undefined/null

我正在创建一个使用 etsy api 来显示商店信息的网站。我正在尝试访问重新解析的 json 字符串的各个值。为此,我需要将返回的字符串转换为对象。我能看到的唯一方法是json_decode($response_body);,但我似乎无法让它工作。当我使用该函数时,当我尝试获取它的类型时它返回 undefined/NULL。返回的字符串看起来像这样:{"count":3,"results":[{"listing_id":252525252,"state":"active","user_id":1111111,"category_id":1234567,"title":"Title of product","description":"This is a description"}. 我做错了什么吗?这是我正在使用的代码:

0 投票
0 回答
838 浏览

python - 使用 Python Etsy API 上传图像

我正在尝试通过 API 将图像上传到 Etsy。但是,他们网站上的示例是用 PHP 给出的,我不知道如何编码。我只知道如何使用 Python。在他们的网站上它说:

可以使用带有 Content-Type: multipart/form-dataheader 的 POST 请求执行图像上传,遵循 RFC1867。

他们的例子是 PHP

在 API 文档中它说

这是我迄今为止在 Python 中所拥有的:

当我运行此代码时,我收到 403 错误。如何修复我的代码以使其正常运行?我已经查看了其他示例,但似乎无法使其正常工作。

0 投票
1 回答
909 浏览

oauth - Windows Etsy:对等证书无法使用给定的 CA 证书进行身份验证

为了使用 Etsy 进行 OAuth,我在 C# 中尝试了无数解决方案来至少启动身份验证过程(即获取登录 URL):

例如

mashery.comhttp://term.ie/oauth/example/client.php问题 #8321034

但反应总是一样的:

oauth_problem=signature_invalid&debug_sbs=GET&https%3A%2F%2Fopenapi.etsy.com%2Fv2%2Foauth%2Frequest_token&oauth_consumer_key%3D...my-consumer-key...%26oauth_nonce%3D2de91e1361d1906bbae04b15f42ab38d%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1502362164%26oauth_version %3D1.0%26scope%3Dlistings_w%2520listings_r

所以我求助于可怕的 PHP 世界......

在我的机器上,我安装了以下(Windows 10):

Apache 和 Tomcat 不会从 XAMPP 开始运行,因为它说端口 443 和 80 正在被使用/阻止,所以我适时将它们更改为 444 和 122

到目前为止一切顺利,但是当我在浏览器中运行以下脚本时(http://localhost:444/dashboard/etsy.php):

我收到以下错误消息:

致命错误:未捕获的 OAuthException:在 C:\xampp\htdocs\dashboard\etsy.php:8 中使请求失败(对等证书无法使用给定的 CA 证书进行身份验证)堆栈跟踪:#0 C:\xampp\htdocs\dashboard\ etsy.php(8): OAuth->getRequestToken(' https://openapi ...', 'oob') #1 {main} 在第 8 行的 C:\xampp\htdocs\dashboard\etsy.php 中抛出

我已经尝试使用每个线程安全的 x86 版本的 OAuth ( http://windows.php.net/downloads/pecl/releases ) 运行脚本 - 停止,重新启动 Apache) 但没有运气。

我无计可施。

如何解决此对等证书问题?

0 投票
1 回答
2783 浏览

javascript - Chrome 控制台 Javascript“无法读取未定义的属性‘点击’”

我一直在尝试创建一个脚本来收藏 etsy 商店中的所有商品

但是,当我尝试在 Chrome 的开发人员控制台中运行脚本时出现此错误

“未捕获的类型错误:无法在 :3:11 读取未定义的属性‘点击’”

我认为这应该有效吗?除了进入 selenium 等自动化工具之外,我不知道在我登录的网站上运行 Javascript 的替代方法


回应第一条评论

0 投票
1 回答
903 浏览

php - Etsy API 更新列表

我正在尝试使用 updateListing 方法来修改列表描述...

https://www.etsy.com/developers/documentation/reference/listing#method_updatelisting

我成功完成了 OAuth 身份验证过程,并且能够按照文档中的示例通过 API 发出授权请求。我在使用 updateListing 方法时遇到问题。我正在尝试修改描述,但出现以下错误...</p>

“无效的身份验证/错误请求(收到 400,预期 HTTP/1.1 20X 或重定向)预期参数 'quantity'.Array”</p>

根据文档,数量不是必需的(实际上已为 updateListing 折旧)。当我使用现有数量填充数组中的“数量”(已注释掉)时,它会抱怨它期望的另一个字段。我不确定为什么我会收到关于这些字段的错误,因为它们不是必需的。我不介意使用列表中可用的现有属性来填充这些字段,但有一个我目前没有的“shipping_template_id”字段。我不能将它设置为 null,因为它需要一个数值。当我将其设置为 0 时,它表示它不是有效的运输模板 ID。我一定做错了什么。

这是我的代码(我替换了我的实际令牌和令牌秘密)......</p>

$access_token = "我的令牌"; $access_token_secret = "我的秘密";

$oauth = 新 OAuth(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);

$oauth->setToken($access_token, $access_token_secret);

尝试 {

} 捕捉(OAuthException $e){

}