1

rauth用来与 Bricklink API 进行通信。基本的 API 实现可以在这里找到,Bricklink 提供的文档可以在这里找到。方法类是在 API 类的基础上构建的,以与 Bricklink 进行通信。

将数据发布到 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?

4

0 回答 0