报告错误操作方法
错误是通过打开一个新的Github问题来报告的,你应该毫不犹豫地这样做。事实上,如果文档不清楚,或者您认为API不直观,或者您只是需要一些使用库的帮助,请打开一个问题。
OAuthLib努力提供有用的异常消息,如果您遇到不是这样的情况,请让我们知道!
在报告错误时,特别是当它们很难或不可能重现时,包括日志记录输出是很有用的。可以通过将记录器添加到 oauthlib 命名空间。您可能还希望启用调试模式以在输出中包括请求数据。
import logging
import oauthlib
import sys
oauthlib.set_debug(True)
log = logging.getLogger('oauthlib')
log.addHandler(logging.StreamHandler(sys.stdout))
log.setLevel(logging.DEBUG)
如果您使用的是基于OAuthLib构建的库,请同时启用其模块的日志记录,例如 requests-oauthlib
log = logging.getLogger('requests-oauthlib')
log.addHandler(logging.StreamHandler(sys.stdout))
log.setLevel(logging.DEBUG)
遗憾的是,我们不能总是快速响应问题并帮助我们,请尝试并包括重现问题的步骤。一个简短的例子可以影响很大,例如代替
# oauthlib crashes when trying to sign foobar urls.
目标是
# OAuth 1 Clients raise a value error for the example below
from oauthlib.oauth1 import Client
client = Client('client-id')
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
body = 'hello world'
client.sign('https://foo.bar', headers=headers, body=body)
这样的例子立即告诉我们两件事
你可能想要有身体的手势,但还不清楚它是否需要首先进行适当的编码。
您可能不想对正文进行签名,但请遵循这样一个示例:提供了标题,但您不确定是否可以简单地跳过提供标题。
根本原因当然可能要复杂得多,但在任何一种情况下,复制的步骤都允许我们推测可能导致问题的原因,并减少找到解决方案所需的往返次数。