我正在使用rauth
与Bricklink API进行通信。可以找到基本的API实现here,可以找到Bricklink提供的文档here。方法类正在API类上构建,以与Bricklink通信。
将数据发布到Bricklink时,您必须将此数据作为请求正文发送。有了简单的要求,那很好。例如,这可以正常工作(记住data
):
client = ApiClient(...)
data = {'foo': 'bar', 'stack': 'overflow'}
client.post('inventories', data)
但是,正如文档here所示,我需要有时将内部字典传递给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
?