报告错误操作方法

错误是通过打开一个新的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)

这样的例子立即告诉我们两件事

  1. 你可能想要有身体的手势,但还不清楚它是否需要首先进行适当的编码。

  2. 您可能不想对正文进行签名,但请遵循这样一个示例:提供了标题,但您不确定是否可以简单地跳过提供标题。

根本原因当然可能要复杂得多,但在任何一种情况下,复制的步骤都允许我们推测可能导致问题的原因,并减少找到解决方案所需的往返次数。