Oauth 调用createListing的Etsy API时出现错误403

Oauth 调用createListing的Etsy API时出现错误403,oauth,etsy,Oauth,Etsy,我正在编写一个Mac应用程序来管理Etsy列表。我正在使用objective-c和OauthConsumer库 我已经成功地获得了auth令牌并检索到了列表和类别 现在我想创建一个列表。我创建了一个字典,其中包含测试所需的最小字段 这是调试输出。我刚刚修改了oauth_令牌 你能看到这个问题吗?谢谢 2016-08-28 12:31:09.042货物[32465:16639890]清单字典:{ params = { "category_id" = 323; descr

我正在编写一个Mac应用程序来管理Etsy列表。我正在使用objective-c和OauthConsumer库

我已经成功地获得了auth令牌并检索到了列表和类别

现在我想创建一个列表。我创建了一个字典,其中包含测试所需的最小字段

这是调试输出。我刚刚修改了oauth_令牌

你能看到这个问题吗?谢谢

2016-08-28 12:31:09.042货物[32465:16639890]清单字典:{

params =     {

    "category_id" = 323;

    description = "testing - not for sale";

    "is_supply" = false;

    price = 3000;

    quantity = 1;

    title = "testing - not for sale";

    "when_made" = 1920s;

    "who_made" = "someone_else";

};
}

2016-08-28 12:31:09.042货物[32465:16639890]jsonString:{“参数”:{“标题”:“测试-不出售”,“何时制造”:“1920年代”,“谁制造”:“其他人”,“数量”:“1”,“是否供应”:“虚假”,“价格”:“3000”,“类别id”:“323”,“说明”:“测试-不出售”}

2016-08-28 12:31:12.475货物[32465:16639890]URL字符串:

2016-08-28 12:31:12.476货物[32465:16639890]请求:url:

所有HttpHeaderFields:{

Authorization = "OAuth realm=\"\", oauth_consumer_key=\"b2ttpixxxxxxxxnciaubi8\", oauth_token=\"xxxxxxxxxxxx\", oauth_signature_method=\"HMAC-SHA1\", oauth_signature=\"NHSLUPAZyrtOrEI%2BAQCV9w74%2BIc%3D\", oauth_timestamp=\"1472409072\", oauth_nonce=\"BF3E6982-695E-4EF4-AD70-BDF8A401A65B\", oauth_version=\"1.0\"";

method = createListing;
"Cache-Control" = private;

Connection = close;

"Content-Length" = 766;

"Content-Type" = "text/plain;charset=UTF-8";

Date = "Sun, 28 Aug 2016 18:31:13 GMT";

Server = Apache;

"X-Cnection" = close;

"X-Error-Detail" = "oauth_problem=signature_invalid&debug_sbs=POST&https%3A%2F%2Fopenapi.etsy.com%2Fv2%2Flistings%2F&oauth_consumer_key%3Db2ttpia1jk3j2ijhnciaubi8%26oauth_nonce%3DBF3E6982-695E-4EF4-AD70-BDF8A401A65B%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1472409072%26oauth_token%3D840f745e22136b6351500b567ee6c9%26oauth_version%3D1.0%26%257B%2522params%2522%253A%257B%2522title%2522%253A%2522testing_-_not_for_sale%2522%252C%2522when_made%2522%253A%25221920s%2522%252C%2522who_made%2522%253A%2522someone_else%2522%252C%2522quantity%2522%253A%25221%2522%252C%2522is_supply%2522%253A%2522false%2522%252C%2522price%2522%253A%25223000%2522%252C%2522category_id%2522%253A%2522323%2522%252C%2522description%2522%253A%2522testing_-_not_for_sale%2522%257D%257D%3D";

"X-Etsy-Request-Uuid" = 084ELjPQBbhJzUjLaOa3XxHVfwSh;
}

_签名字符串:POST&https%3A%2F%2Fopenapi.etsy.com%2Fv2%2F列表%2F&oauth_用户密钥%3Db2ttpia1jk3j2ijhnciaubi8%26oauth_nonce%3DBF3E6982-695E-4EF4-AD70-bdf8a40165b%26oauth_签名方法%3DHMAC-SHA1%26oauth_时间戳%3D1472409072%26oauth_令牌%3db745e221363b500b567;%6;%3db50

2016-08-28 12:31:12.476货物[32465:16639890]configuration.HTTPAdditionalHeaders:(空)

2016-08-28 12:31:12.477货物[32465:16639890]等项目:

2016-08-28 12:31:13.069货物[32465:16640021]状态码:403

2016-08-28 12:31:13.069货物[32465:16640021]httpurresponse.allHeaderFields:{

Authorization = "OAuth realm=\"\", oauth_consumer_key=\"b2ttpixxxxxxxxnciaubi8\", oauth_token=\"xxxxxxxxxxxx\", oauth_signature_method=\"HMAC-SHA1\", oauth_signature=\"NHSLUPAZyrtOrEI%2BAQCV9w74%2BIc%3D\", oauth_timestamp=\"1472409072\", oauth_nonce=\"BF3E6982-695E-4EF4-AD70-BDF8A401A65B\", oauth_version=\"1.0\"";

method = createListing;
"Cache-Control" = private;

Connection = close;

"Content-Length" = 766;

"Content-Type" = "text/plain;charset=UTF-8";

Date = "Sun, 28 Aug 2016 18:31:13 GMT";

Server = Apache;

"X-Cnection" = close;

"X-Error-Detail" = "oauth_problem=signature_invalid&debug_sbs=POST&https%3A%2F%2Fopenapi.etsy.com%2Fv2%2Flistings%2F&oauth_consumer_key%3Db2ttpia1jk3j2ijhnciaubi8%26oauth_nonce%3DBF3E6982-695E-4EF4-AD70-BDF8A401A65B%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1472409072%26oauth_token%3D840f745e22136b6351500b567ee6c9%26oauth_version%3D1.0%26%257B%2522params%2522%253A%257B%2522title%2522%253A%2522testing_-_not_for_sale%2522%252C%2522when_made%2522%253A%25221920s%2522%252C%2522who_made%2522%253A%2522someone_else%2522%252C%2522quantity%2522%253A%25221%2522%252C%2522is_supply%2522%253A%2522false%2522%252C%2522price%2522%253A%25223000%2522%252C%2522category_id%2522%253A%2522323%2522%252C%2522description%2522%253A%2522testing_-_not_for_sale%2522%257D%257D%3D";

"X-Etsy-Request-Uuid" = 084ELjPQBbhJzUjLaOa3XxHVfwSh;

}

您是否尝试将配送模板id添加到参数中的配置中?我在上面没有看到

我有一个类似的问题,但错误消息告诉我配送模板id丢失

创建一个新列表。注意:在以下情况下需要装运模板id 创建一个列表。注意:在www.etsy.com上创建的所有列表必须 实际出售的物品。请参阅我们的现场测试指南 清单

另外,我不确定您的请求url是否是etsy的url 寻找。下面是我用作基本url的示例

在设置了post url后,我为bare min要求添加了以下参数:

  • 装运模板id
  • 列表项
  • 头衔
  • 描述
  • 价格
  • 你是谁做的
  • 这是供应吗
  • 状态重要这不是必需的,但将创建处于活动状态的项。对于测试,我总是将状态设置为draft,这样就不会收取商店激活费
如果这有帮助,请告诉我,我有一些示例,但它们是基于Java的。确保您使用post请求,并且如果错误消息没有更改,那么我们需要查看您的身份验证代码,以确保在发出post请求之前获得正确的令牌