2017-09-26 7 views
0

DevDefined.OAuthを使用しています。私はEtsyの既存のリストを更新しようとしています。API経由でEtsyのリストを更新する

_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); 

しかし、私はメッセージ「signature_invalid」と403応答のすべての時間を受け取る: はここに私のコードです。

Etsyのリストを同じ方法で作成すると(メソッドがPUTではなくPOSTの場合を除く)、すべて正常に動作します。

何か不足していますか?

答えて

0

あなたは

$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 
); 

あなたはあなたの製品がEtsyの

に更新を取得するための$ product_dataフィールドにJSONなどの製品データを渡すことができ、製品のリストは、Etsyの上で更新を取得するEtsyのAPIメソッドupdateInventoryを使用することができます
関連する問題