基于ETSY API开发ASP.NET Core Web服务的技术问询
基于Etsy API的ASP.NET Core服务开发实施步骤
- 第一步:优先处理API密钥激活
未激活的密钥无法发起任何API调用,先完成这一步(审核时长说明见下方)。 - 第二步:梳理核心API端点与参数
针对你的查询需求,重点关注这些能力对应的端点:- 近2个月销量最高的商品:调用
/listings/active端点,设置sort_on=sales排序,通过created或updated参数(时间戳格式)限定近2个月范围,用limit控制返回数量 - 近2个月销量最高的店铺:调用
/shops端点,结合sort_on=sales和时间范围参数筛选 - 基础查询示例:按关键词搜商品用
/listings/active?keywords=xxx,查店铺详情用/shops/{shop_id}
所有参数规则可参考Etsy官方API文档的参数说明
- 近2个月销量最高的商品:调用
- 第三步:搭建ASP.NET Core项目并配置依赖
- 创建ASP.NET Core Web API项目
- 添加HTTP请求工具(如
HttpClient或RestSharp)用于发起API请求 - 将Keystring和Shared Secret存入
appsettings.json,避免硬编码敏感信息
- 第四步:实现API调用与数据封装
- 编写服务类封装Etsy API调用逻辑,重点处理OAuth1.0签名(见下方认证示例)
- 解析Etsy返回的JSON响应,转换成符合业务需求的模型类
- 暴露自定义API端点,将处理后的数据返回给调用方
- 第五步:测试与调试
先调用无需用户授权的公开端点验证请求有效性,再逐步扩展到需认证的接口,排查签名错误、参数格式问题等
认证示例(多语言)
Etsy API采用OAuth 1.0a认证,以下是基础调用示例:
C#(ASP.NET Core)
using System; using System.Net.Http; using System.Security.Cryptography; using System.Text; public async Task<string> FetchEtsyListings() { var keystring = "你的KEYSTRING"; var sharedSecret = "你的SHARED SECRET"; var baseUrl = "https://openapi.etsy.com/v2/listings/active"; // 生成OAuth1签名(简化实现,生产环境需完善nonce、timestamp等逻辑) var timestamp = ((int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds).ToString(); var nonce = Guid.NewGuid().ToString("N"); var signatureBase = $"GET&{Uri.EscapeDataString(baseUrl)}&{Uri.EscapeDataString($"oauth_consumer_key={keystring}&oauth_nonce={nonce}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={timestamp}&oauth_version=1.0")}"; var signingKey = $"{Uri.EscapeDataString(sharedSecret)}&"; var hmac = new HMACSHA1(Encoding.ASCII.GetBytes(signingKey)); var signatureBytes = hmac.ComputeHash(Encoding.ASCII.GetBytes(signatureBase)); var signature = Convert.ToBase64String(signatureBytes); // 发起请求 using var client = new HttpClient(); var requestUrl = $"{baseUrl}?oauth_consumer_key={keystring}&oauth_nonce={nonce}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={timestamp}&oauth_version=1.0&oauth_signature={Uri.EscapeDataString(signature)}"; var response = await client.GetAsync(requestUrl); return await response.Content.ReadAsStringAsync(); }
Python
import requests from requests_oauthlib import OAuth1 keystring = "你的KEYSTRING" shared_secret = "你的SHARED SECRET" url = "https://openapi.etsy.com/v2/listings/active" oauth = OAuth1(keystring, shared_secret) response = requests.get(url, auth=oauth) print(response.json())
技术支持获取方式
- 在Etsy开发者后台的「Support」入口提交工单,描述具体问题
- 加入Etsy官方开发者社区论坛,和其他开发者交流解决方案
- 查阅Etsy开发者文档的常见问题板块,基础问题大多有现成解答
API密钥审核时长说明
Etsy API密钥的审核周期通常为1-7个工作日,等待3天属于正常范围。若超过7天未收到激活通知,可通过开发者后台的Support入口提交工单询问进度。
内容的提问来源于stack exchange,提问作者Yasin Tasdemir
相关产品推荐
相关产品推荐

