rauth
Bricklink API との通信に使用しています。基本的な API 実装はここで見つけることができ、Bricklink によって提供されるドキュメントはここで見つけることができます。メソッド クラスは、Bricklink と通信するために API クラスに基づいて構築されています。
Bricklink にデータを送信するときは、このデータをリクエスト ボディとして送信する必要があります。簡単なリクエストで結構です。たとえば、これは問題なく機能します (注意data
):
client = ApiClient(...)
data = {'foo': 'bar', 'stack': 'overflow'}
client.post('inventories', data)
ただし、ここに記載されているように、Bricklink に内部辞書を渡す必要がある場合があります (item
プロパティ)。コード例:
client = ApiClient(...)
data = {'item': {'type': 'MINIFIG', 'no': 'cas358'}, 'quantity': 3}
client.post('inventories', data)
の辞書に注意してdata['item']
ください。このリクエストを送信すると、rauth は有効な OAuth 署名を計算できないようです。どの API メソッドが使用されているかは関係ありません。このような辞書を使用する場合、リクエストは常に失敗します。トレースバック:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "bricklink/api.py", line 59, in post
return self.request('POST', url, params)
File "bricklink/api.py", line 53, in request
return self.processResponse(response)
File "bricklink/api.py", line 36, in processResponse
elif meta['message'] == 'BAD_OAUTH_REQUEST': raise BricklinkBadOauthRequestException(meta['description'])
bricklink.exceptions.BricklinkBadOauthRequestException: SIGNATURE_INVALID: Invalid Signature
そのような辞書を介してに渡す回避策または別の方法はありrauth
ますか?