python-telegram-bot 22:API 调用与轮询的代理设置
在 python-telegram-bot 22.8 中,构建轮询应用前需要同时配置 proxy 与 get_updates_proxy。
在 python-telegram-bot 22.8 中,轮询有自己的请求对象。因此,一次成功的普通 API 调用并不能证明 getUpdates 收到了同样的代理路径。
对于轮询应用,请同时配置两条路径:
from telegram.ext import Application
proxy_url = 'http://proxy-user:[email protected]:8080'
application = (
Application.builder()
.token(bot_token)
.proxy(proxy_url)
.get_updates_proxy(proxy_url)
.build()
)proxy 配置通用的 Bot API 操作;get_updates_proxy 配置轮询。围绕这一应用构建,继续使用现有的处理器以及轮询或 webhook 生命周期。
URL 中的凭据只是占位符。请通过部署的凭据机制获取真实值,并 对 URL 各组成部分中的保留字符进行百分号编码。请使用中间人实际的 scheme:HTTPXRequest 接受 HTTP 代理 URL,并且在安装包所需 SOCKS 依赖后支持 SOCKS5。SOCKS5 代理列表 提供的是该协议的端点候选,而不是代理账户凭据。
如果应用通过 request 或 get_updates_request 提供自定义对象,则应改为一致地配置这些对象。builder 中的代理设置与单独提供的请求对象,是对应路径的两种替代输入。
Updater 的旧式做法使用 request_kwargs 与 urllib3_proxy_kwargs,针对的是另一个世代。