如何在 Python 中将 HTTP 和 HTTPS 代理与 OAuth2 一起用于请求包?

How to use HTTP & HTTPS proxy along with OAuth2 with requests package in Python?

我正在使用 Python 中的 requests 包来调用一些 API。我在公司防火墙后面,所以我使用代理从 API 访问数据。但现在我也需要使用 OAuth2。 Requests 本身不支持 OAuth2,我们必须为此使用 requests-oauthlib。但是 requests-oauthlib 没有使用代理的选项(参见它的 documentation here)。

那么,如何同时使用 OAuth2 和代理?虽然我更喜欢使用 requests 包因为它的简单性,但欢迎使用任何方法。

我建议根据您的目的修改 requests-oauthlib 以支持代理或直接使用请求 API,因为编写 oauth 客户端并不难。它是相同的标准 HTTP 内容

requests-oauthlib 提供的会话对象继承自 requests.Session,因此您可以像在实例化 requests.Session() 上一样在它们上指定 proxies:

from requests_oauthlib import OAuth2Session

session = OAuth2Session(...)
session.proxies = {'all': 'http://my.proxy.url:3128'}

session.fetch_token(...)