パラメータを使用して URL 文字列を作成し、リクエストに署名するなど、Product Advertising API を使用して LookupItem リクエストを完全に生成できますが、MWS RequestReport リクエスト用に変更したモデルを取得しようとすると、このエラー メッセージが表示されます。 :
「無効なセクション名またはバージョンが指定されました - onca/2011-01-01」
不思議な理由で、明らかに私のパラメータが次の場合に、日付の先頭に「 onca/ 」を追加し続けます。
Map<String, String> params = new HashMap<String, String>();
params.put("Action", "RequestReport");
params.put("Version", "2011-01-01"); //NOT "onca/2011-01-01" (version may be old)
params.put("SellerId", MERCHANT_ID);
params.put("SignatureVersion", "2");
params.put("SignatureMethod", "HmacSHA256");
params.put("ReportType", "_GET_MERCHANT_LISTINGS_DATA_");
//timestamp and signature params are added in the method that signs this request
requestUrl = helper.sign(params);
ここで何が欠けていますか?メソッドは、この「正規のクエリ文字列」に署名しても、それを追加しません。これは、先ほど述べた LookupItem リクエストへの署名に成功したことからも明らかです。これは、Amazon が署名を解釈する方法と関係がありますか? しかし、URL/エンコーディングが一致しないということではないでしょうか? 理論はありますか?さらにコードや情報が必要ですか?