我们为您准备了一个您无法拒绝的包装
我们拥有一个充满活力的开发者社区,在我们的Telegram群组中互相帮助。加入我们吧!
关注我们的 Telegram频道 ,获取图书馆更新和新发布的信息。
这个库为 Telegram Bot API 提供了一个纯 Python、异步接口。它兼容 Python 版本 3.8+。
除了纯API实现外,该库还提供了几种便利方法和快捷方式,以及一些高级类,使机器人的开发变得简单而直接。这些类包含在telegram.ext
子模块中。
安装完installing库之后,请务必查看working with PTB部分。
本库原生支持 Telegram Bot API 7.7 的所有类型和方法。此外,尚未原生包含的 Bot API 功能仍可按照 我们的 wiki 中的描述使用。
您可以通过以下方式安装或升级 python-telegram-bot
$ pip install python-telegram-bot --upgrade
要安装预发布版本,请额外使用 --pre
标志。
你也可以从源代码安装 python-telegram-bot
,尽管这通常是不必要的。
$ git clone https://github.com/python-telegram-bot/python-telegram-bot $ cd python-telegram-bot $ pip install build $ python -m build
为了让您能够验证您下载的发布文件确实是由python-telegram-bot
团队提供的,我们已经采取了以下措施。
从 v21.4 版本开始,所有发布都通过 sigstore 进行签名。相应的签名文件已上传到 GitHub 发布页面。要验证签名,请安装 sigstore Python 客户端 并按照 从 GitHub Actions 验证签名的说明 进行操作。作为 --repository
参数的输入,请使用值 python-telegram-bot/python-telegram-bot
。
早期版本使用 GPG 密钥进行签名。签名已上传到 GitHub 发布页面 和 PyPI 项目,并以 .asc
后缀结尾。请在 此处 找到公钥。密钥的命名格式为 <first_version>-<last_version>.gpg
。
此外,GitHub 发布页面还包含了带有后缀.sha1
的文件中发布文件的 sha1 哈希值。
python-telegram-bot
尽可能少地使用第三方依赖。然而,对于一些功能,使用第三方库比再次实现功能更明智。由于这些功能是 可选的,因此相应的第三方依赖不会默认安装。相反,它们被列为可选依赖项。这样可以避免不需要可选功能的用户发生不必要的依赖冲突。
唯一需要的依赖是 httpx ~= 0.27,用于 telegram.request.HTTPXRequest
,默认的网络后端。
python-telegram-bot
与其他库一起使用时效果最佳。为了减少依赖冲突,我们在(可选)依赖项的版本要求上尽量宽松。另一方面,我们必须确保 python-telegram-bot
的稳定性,这就是为什么我们会应用版本范围。如果由于这些范围而遇到依赖冲突,请随时联系我们。
PTB可以安装可选依赖项:
pip install "python-telegram-bot[passport]"
安装 cryptography>=39.0.1 库。如果您想使用 Telegram Passport 相关功能,请使用此命令。
pip install "python-telegram-bot[socks]"
安装 httpx[socks]。如果您想在 Socks5 服务器后面工作,请使用此选项。
pip install "python-telegram-bot[http2]"
安装 httpx[http2]。如果您想使用 HTTP/2,请使用此命令。
pip install "python-telegram-bot[rate-limiter]"
安装 aiolimiter~=1.1.0。如果您想使用telegram.ext.AIORateLimiter
,请使用此命令。
pip install "python-telegram-bot[webhooks]"
安装 tornado~=6.4 库。如果要使用telegram.ext.Updater.start_webhook
/telegram.ext.Application.run_webhook
,请使用此命令。
pip install "python-telegram-bot[callback-data]"
安装 cachetools~=5.3.3 库。如果您想使用 任意的 callback_data,请使用此命令。
pip install "python-telegram-bot[job-queue]"
安装 APScheduler~=3.10.4 库并强制安装 pytz>=2018.6,其中pytz
是APScheduler
的一个依赖项。如果要使用telegram.ext.JobQueue
,请使用此命令。
要安装多个可选依赖项,请用逗号分隔它们,例如 pip install "python-telegram-bot[socks,webhooks]"
。
此外,还提供了两个快捷方式:
pip install "python-telegram-bot[all]"
安装所有可选依赖项。
pip install "python-telegram-bot[ext]"
安装所有与telegram.ext
相关的可选依赖项,即[rate-limiter, webhooks, callback-data, job-queue]
。
一旦您安装了这个库,您就可以开始使用它了 - 让我们开始吧!
我们的维基包含了一个API介绍,解释了如何通过python-telegram-bot
访问纯净的Bot API。此外,教程:你的第一个机器人介绍了如何借助telegram.ext
模块轻松编写聊天机器人。
- wiki 是许多更详细介绍
python-telegram-bot
不同功能以及其他有用资源的家园,超越技术文档。
- 我们的示例部分包含了几个示例,展示了Bot API和
python-telegram-bot
的不同功能。即使这不是您学习的方式,请看一下echobot.py
。这是大多数机器人的事实基础。这些示例的代码已发布到公共领域,因此您可以从获取代码并在其基础上构建。
- 当然值得一读的是Telegram官方Bot API文档。
如果上述提到的资源无法回答您的问题或让您感到不知所措,那么有几种获取帮助的方式。
- 我们拥有一个充满活力的开发者社区,在我们的Telegram群组中互相帮助。加入我们吧!在这里提问通常是获得正确指引的最快方式。
- 通过打开讨论来提问。
- 你甚至可以在 Stack Overflow 上使用 python-telegram-bot 标签 寻求帮助。
自 v20.0 版本开始,python-telegram-bot
基于 Python 的 asyncio
模块构建。由于 asyncio
通常是单线程的,python-telegram-bot
目前不打算做到线程安全。python-telegram-bot
API 中值得注意的部分可能会在多线程环境中引起问题(例如竞态条件)包括:
telegram.ext.Application/Updater.update_queue
telegram.ext.ConversationHandler.check/handle_update
telegram.ext.CallbackDataCache
telegram.ext.BasePersistence
- 在
telegram.ext.filters
模块中的所有类,允许在运行时添加/移除允许的用户/聊天
欢迎各种规模的贡献。请查阅我们的贡献指南开始。您也可以通过报告错误或提出功能请求来提供帮助。
偶尔会有人问我们是否接受捐赠来支持开发。虽然我们感谢这种想法,但维护 PTB 是我们的爱好,几乎没有任何运营成本。因此,我们没有设置接受捐赠的方式。如果您仍然想捐赠,我们恳请您选择捐赠给其他开源项目/倡议。
您可以复制、分发和修改软件,前提是修改必须进行描述并在LGPL-3下免费许可。派生作品(包括修改或任何静态链接到库的内容)只能在LGPL-3下重新分发,但使用该库的应用程序则无需如此。