问题标签 [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.
angular - jsonp 调用 Etsy
我正在尝试通过服务列出 Etsy 配置文件中的产品,使用开发人员页面中为 jsonp 提供的语法: https ://www.etsy.com/developers/documentation/getting_started/jsonp
这是我的服务:
我收到两个错误:
未捕获的 ReferenceError:未定义 getData
和
错误响应 {_body:“JSONP 注入脚本没有调用回调。”,状态:200,ok:true,statusText:“Ok”,标头:标头...}
jsonp - Etsy API,包括部分列表中的图像
到目前为止,我已经能够过滤调用以仅获取具有此 url 的部分中的产品:
问题是 Etsy api 不接受 ShopSection 的图像关联: https ://www.etsy.com/developers/documentation/reference/shopsection#section_associations
那么如何在一个部分中列出带有缩略图的产品呢?
奖励问题:即使产品实际上具有高度和宽度,Etsy 总是为 item_height 和 item_width 返回 null,这是一个错误吗?
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。
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
在哪里:
products在他们的文档中进一步定义为我不知道的property_values和产品的组合。
list_id 最初是从对 createListing() 的调用中返回的。
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 开发人员支持,但他们可能需要一段时间才能回复)。
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:
- 如果我忽略 API 数据(但仍然进行 API 调用)并返回一个简单的 XML 字符串 (
echo "<tag></tag>"
),那么 responseXML仍将为空,即使我没有“回显”来自 API 调用的任何数据。
这不起作用(ajax.responseXML
为空):
echo "<tag></tag>"
如果我返回简单的XML 字符串(
这确实有效(ajax.responseXML
不为空):
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"}
. 我做错了什么吗?这是我正在使用的代码:
python - 使用 Python Etsy API 上传图像
我正在尝试通过 API 将图像上传到 Etsy。但是,他们网站上的示例是用 PHP 给出的,我不知道如何编码。我只知道如何使用 Python。在他们的网站上它说:
可以使用带有 Content-Type: multipart/form-dataheader 的 POST 请求执行图像上传,遵循 RFC1867。
他们的例子是 PHP
在 API 文档中它说
这是我迄今为止在 Python 中所拥有的:
当我运行此代码时,我收到 403 错误。如何修复我的代码以使其正常运行?我已经查看了其他示例,但似乎无法使其正常工作。
oauth - Windows Etsy:对等证书无法使用给定的 CA 证书进行身份验证
为了使用 Etsy 进行 OAuth,我在 C# 中尝试了无数解决方案来至少启动身份验证过程(即获取登录 URL):
例如
mashery.com,http://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) 但没有运气。
我无计可施。
如何解决此对等证书问题?
javascript - Chrome 控制台 Javascript“无法读取未定义的属性‘点击’”
我一直在尝试创建一个脚本来收藏 etsy 商店中的所有商品
但是,当我尝试在 Chrome 的开发人员控制台中运行脚本时出现此错误
“未捕获的类型错误:无法在 :3:11 读取未定义的属性‘点击’”
我认为这应该有效吗?除了进入 selenium 等自动化工具之外,我不知道在我登录的网站上运行 Javascript 的替代方法
回应第一条评论
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){
}