pyTelegramBotAPI:用 Python 写 Telegram 机器人,这件事它包了
2026/6/27 6:17:23 网站建设 项目流程

文章目录

  • pyTelegramBotAPI:用 Python 写 Telegram 机器人,这件事它包了
    • 同步和异步都支持
    • 写一个最简单的机器人
    • 消息处理器的设计
    • 中间件和自定义过滤器
    • 其他实用功能
    • 适合什么场景

pyTelegramBotAPI:用 Python 写 Telegram 机器人,这件事它包了

做 Telegram 机器人的 Python 开发者,大概率听过 pyTelegramBotAPI 这个库。它在 GitHub 上攒了 8700 多个 Star,算是 Telegram Bot API 的 Python 封装里用得最多的一个。

这个库解决的问题很直接:Telegram 官方的 Bot API 是 HTTP 接口,每发一条消息都要拼参数、发请求、解析响应。pyTelegramBotAPI 把这些全封装了,你写 Python 函数,它帮你搞定底层通信。

同步和异步都支持

很多 Telegram Bot 库只支持同步模式,pyTelegramBotAPI 两种都支持。

同步模式用TeleBot,异步模式用AsyncTeleBot。切换方式就改一行代码:

# 同步bot=telebot.TeleBot("TOKEN")# 异步bot=telebot.AsyncTeleBot("TOKEN")

异步版本底层用的是 aiohttp,不用 requests。如果你的机器人要处理大量并发消息,异步模式会合适一些。同步模式用线程池处理消息,小规模使用没问题。

写一个最简单的机器人

整个流程分三步:创建实例、注册处理函数、启动轮询。

importtelebot bot=telebot.TeleBot("YOUR_BOT_TOKEN")@bot.message_handler(commands=['start','help'])defsend_welcome(message):bot.reply_to(message,"你好,请问有什么可以帮你的?")@bot.message_handler(func=lambdamessage:True)defecho_all(message):bot.reply_to(message,message.text)bot.infinity_polling()

这段代码实现了一个回声机器人:收到/start/help命令回复固定文本,收到其他消息原样返回。infinity_polling()会自动处理断线重连。

消息处理器的设计

消息处理器是这个库的核心概念。你用@bot.message_handler()装饰器注册一个函数,当收到符合条件的消息时,这个函数就会被调用。

支持的过滤条件有五种:内容类型(文字、图片、文档等)、正则表达式、命令(以 / 开头)、聊天类型(私聊、群组、频道)、自定义函数。多个条件可以组合使用。

比如只处理包含特定关键词的图片消息:

@bot.message_handler(content_types=['photo'],func=lambdam:'重要'in(m.captionor''))defhandle_important_photo(message):bot.reply_to(message,"收到重要图片")

除了文本消息,还支持编辑消息、频道帖子、回调查询、内联模式、投票、支付等十几种事件类型。每种都有对应的装饰器。

中间件和自定义过滤器

如果你用过 Web 框架,对中间件不会陌生。pyTelegramBotAPI 支持在消息到达处理器之前和之后插入自定义逻辑。

比如在所有消息处理之前统一记录日志:

classLoggingMiddleware(BaseMiddleware):def__init__(self):self.update_types=['message']defpre_process(self,message,data):print(f"收到消息:{message.text}")defpost_process(self,message,data,exception=None):pass

自定义过滤器也类似,继承SimpleCustomFilter类,定义一个check方法就行。官方示例里有个判断用户是否是群管理员的过滤器,十几行代码搞定。

其他实用功能

这个库还做了几个实用的事情:

发送超长消息时,Telegram API 限制单条消息不超过 4096 字符。库里的split_stringsmart_split函数帮你按行或按句拆分,不用自己写逻辑。

支持代理配置,同步和异步模式都有对应的设置方式。对于国内开发者来说,这个功能比较实用。

支持本地 Bot API Server。Telegram 允许你部署自己的 Bot API 服务器来处理大文件上传,这个库也兼容。

提供了测试模式,可以自定义请求发送函数,不用真的连 Telegram 服务器就能跑单元测试。

适合什么场景

如果你是 Python 开发者,想做 Telegram 机器人,这个库基本是首选。它的 API 设计跟 Telegram 官方文档基本一一对应,文档读完就能上手。8700 多个 Star、持续维护了多年,社区活跃度有保障。

具体来说,这几类项目用它比较顺手:客服机器人、群管理工具、内容推送系统、数据监控告警。它的内联模式还能做搜索类机器人,用户在聊天框里 @ 你的机器人就能查询数据。

有个细节值得一提:这个库处理了 Telegram API 的各种边界情况。比如消息超长自动拆分、断线自动重连、Session 超时自动重建。这些你在开发初期可能不会遇到,但上线后用户量一上来就会踩坑。库里帮你处理好了,省得你自己写重试逻辑。

pip install pyTelegramBotAPI一行命令安装,支持 Python 3.10 到 3.14。入门门槛低,功能覆盖全,这就是它能活这么久的原因。

好了,省得你自己写重试逻辑。

pip install pyTelegramBotAPI一行命令安装,支持 Python 3.10 到 3.14。入门门槛低,功能覆盖全,这就是它能活这么久的原因。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询