2017-09-26 5 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에 목록을 만들 때 (방법은 POST가 아니라 PUT 임), 모든 것이 잘됩니다.

나는 뭔가를 놓친가요?

답변

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

당신은 당신의 제품이 에디터 선택

에 업데이트 얻기 위해 $의 product_data 필드에 JSON과 같은 제품 데이터를 전달할 수있는 제품 옵션 에디터 선택에 업데이트 얻을 수있는 에디터 선택 API 방식 updateInventory을 사용할 수 있습니다