php-Etsy API updateListing
updateListingメソッドを使用してリストの説明を修正しようとしています...
https://www.etsy.com/developers/documentation/reference/listing#method_updatelisting
OAuth認証プロセスを正常に実行し、ドキュメントの例のようにAPIを介して承認されたリクエストを行うことができます。 updateListingメソッドに問題があります。説明を修正しようとしていますが、次のエラーが発生します…
「無効な認証/不正なリクエスト(400、期待されるHTTP / 1.1 20Xまたはリダイレクトを取得)期待されるパラメータ'数量'.Array」
ドキュメントによると、数量は必須ではありません(実際にはupdateListingのために減価償却されます)。既存の数量を使用して配列に「数量」を入力すると(コメントアウト)、予期する別のフィールドについて文句を言います。これらのフィールドは必須ではないため、なぜエラーが発生するのかわかりません。リストから利用できる既存の属性を使用してこれらのフィールドに入力してもかまいませんが、現在利用できない「shipping_template_id」フィールドがあります。数値が必要なため、nullに設定できません。 0に設定すると、有効な配送テンプレートIDではないというメッセージが表示されます。私は何か間違ったことをしているに違いない。
これが私のコードです(実際のトークンとトークンシークレットを置き換えました)…
$ access_token="マイトークン"; $ access_token_secret="私の秘密";
$ oauth = new OAuth(OAUTH_CONSUMER_KEY、OAUTH_CONSUMER_SECRET、OAUTH_SIG_METHOD_HMACSHA1、OAUTH_AUTH_TYPE_URI);
$ oauth-> setToken($ access_token、$ access_token_secret);
試してみてください{
$url = "https://openapi.etsy.com/v2/private/listings";
$params = array('listing_id' => $result->listing_id,
//'quantity' => $result->quantity,
//'title' => $result->title,
'description' => $new_description);
$oauth->fetch($url, $params, OAUTH_HTTP_METHOD_POST);
$json = $oauth->getLastResponse();
print_r(json_decode($json, true));
} catch(OAuthException $ e){
echo $e->getMessage();
echo $oauth->getLastResponse();
echo $oauth->getLastResponseInfo();
}
答え :
解決策:
$args = array(
'data' => array(
"quantity" => $quantity,
"title" => $title,
"description" => strip_tags($description),
"price" => $price,
"materials" => $materials,
"shipping_template_id" =>(int)$shippingTemplateId,
"non_taxable" => false,
"state" => "$ced_etsy_upload_product_type",
"processing_min" => 1,
"processing_max" => 3,
"taxonomy_id" => (int)$categoryId,
"who_made" => $who_made,
"is_supply" => true,
"when_made" => $when_made,
)
);
これを試してみてください。これが役立つかもしれません。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。