使用DevDefined.OAuth更新Etsy列表通过API
问题描述:
我试图更新Etsy上的现有列表。 这里是我的代码:使用DevDefined.OAuth更新Etsy列表通过API
_consumerContext = new OAuthConsumerContext
{
ConsumerKey = _apiKey,
ConsumerSecret = _apiSecret,
SignatureMethod = SignatureMethod.HmacSha1
};
_session = new OAuthSession(_consumerContext, "https://openapi.etsy.com/v2/oauth/request_token?scope=transactions_r%20email_r%20listings_r%20transactions_w%20listings_w",
"https://www.etsy.com/oauth/signin",
"https://openapi.etsy.com/v2/oauth/access_token");
_accessToken = new TokenBase();
_accessToken.ConsumerKey = _apiKey;
_accessToken.Token = token;
_accessToken.TokenSecret = tokenSecret;
IConsumerRequest request = _session.Request(_accessToken)
.Put()
.ForUri(new Uri(string.Format("https://openapi.etsy.com/v2/listings/{0}", listing_id)));
request.Context.QueryParameters.Add("listing_id", listing_id.ToString());
request.Context.QueryParameters.Add("title", "New title");
string response = ConsumerRequestExtensions.ReadBody(request);
但我收到403响应所有的与消息“signature_invalid”时间。
当我在Etsy上使用相同的方式创建列表(除了方法是POST,而不是PUT),一切正常。
我错过了什么吗?
答
您可以使用API Etsy的方法updateInventory得到更新您的产品清单上的Etsy
$oauth = new OAuth(API KEYSTRING, API SHARED STRING);
$oauth->setToken($oauth_token, $oauth_token_secret);
$data = $oauth->fetch(
"https://openapi.etsy.com/v2/listings/$listing_id/inventory", [
'products' => $product_data
'sku_on_property' => ''
],
OAUTH_HTTP_METHOD_PUT
);
您可以通过在$ product_data领域的产品数据作为JSON得到更新Etsy的
你的产品