2時間以上調べても分からず、自分では解決出来なかったので質問させてください。。。
AmazonのmwsというAPIを利用しコードを書いているのですが、
GetLowestPricedOffersForASINというAPIでリクエストを送ったところ、
以下のレスポンスが返ってきて、エラーとなりました。
<Response [400]> Failed processing arguments of org.jboss.resteasy.spi.metadata
Scratchpadでは正しくレスポンスが返ってきており、
また他のGetMyFeesEstimateなどのmwsのAPIでコードを書いてリクエストを送ると機能します。
以下に今回のエラーが返ってきたコードを掲載します。
Python
1# coding:utf-8 2import datetime 3import os 4import sys, codecs 5import traceback 6import random 7import math 8import requests 9import base64 10import hashlib 11import hmac 12import json 13from urllib import quote 14import re 15 16DOMAIN = 'mws.amazonservices.jp' 17ENDPOINT = '/Products/2011-10-01' 18 19def datetime_encode(dt): 20 return dt.strftime('%Y-%m-%dT%H:%M:%SZ') 21 22timestamp = datetime_encode(datetime.datetime.utcnow()) 23data = { 24 'AWSAccessKeyId': MY_ACCESS_KEY_ID, 25 'Action': 'GetLowestPricedOffersForASIN', 26 'SellerId': MY_SELLER_ID, 27 'SignatureMethod': 'HmacSHA256', 28 'SignatureVersion': '2', 29 'Timestamp': timestamp , 30 'Version': '2011-10-01', 31 'MarketplaceId': 'A1VC38T7YXB528' , 32 'ASIN': "B013APQBJU" , 33 'ItemCondition': "New" , 34} 35#dataを元にリクエストクエリを作成 36query_string = '&'.join('{}={}'.format( 37 n, quote(v, safe='%')) for n, v in sorted(data.items())) 38canonical = '\n'.join(['POST', DOMAIN, ENDPOINT, query_string]) 39h = hmac.new(MY_ACCESS_SECRET.encode('utf-8'), 40 canonical.encode('utf-8'), 41 hashlib.sha256) 42signature = quote(base64.b64encode(h.digest()), safe='') 43url = 'https://{}{}?{}&Signature={}'.format( 44 DOMAIN, ENDPOINT, query_string, signature) 45response = requests.post(url) 46print(response) 47print(response.text) 48
同様の問題に躓き、解決されている方を探して見つけてコードを拝見したのですが、
どのように解決したのか分からずでした。
https://github.com/ericblade/mws-advanced/issues/17
どのようなご指摘、アドバイスでも構いませんのでコメントいただけると大変助かります。
お手数ですが、よろしくお願い致します。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。