先给结论:开发 TG 机器人并不难
用 Python 开发 TG(纸飞机)机器人,核心流程只有三步:找 BotFather 注册机器人拿到 Token,安装 python-telegram-bot 或 aiogram 这类封装库,然后编写处理消息的代码并运行。整个过程不需要审核,也不需要企业资质,个人开发者就能完成。下面按顺序拆解每个环节。
第一步:注册机器人并获取 Token
在 TG 客户端中搜索 @BotFather,这是一个官方机器人,负责管理所有机器人账号。发送 /newbot,按提示依次输入机器人显示名称和用户名(用户名必须以 bot 结尾,且全局唯一)。成功后 BotFather 会返回一串 Token,形如 123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ。
这个 Token 相当于机器人的密码,不要直接写在公开代码仓库里。建议用环境变量或配置文件保存,并在 .gitignore 中排除。如果 Token 泄露,可以在 BotFather 中使用 /revoke 重置。
第二步:准备 Python 环境
建议使用 Python 3.8 及以上版本,并创建虚拟环境隔离依赖:
- 创建虚拟环境:
python -m venv venv - 激活环境:Windows 用
venv\Scripts\activate,macOS/Linux 用source venv/bin/activate - 安装库:
pip install python-telegram-bot
目前主流的两个库是 python-telegram-bot(文档完善、社区大)和 aiogram(异步原生、性能好)。新手建议先用 python-telegram-bot,它的示例丰富,遇到问题容易搜到答案。
第三步:编写第一个机器人
下面是一个最简单的回声机器人示例,收到什么就回复什么:
from telegram import Update
from telegram.ext import ApplicationBuilder, MessageHandler, filters
async def echo(update: Update, context):
await update.message.reply_text(update.message.text)
app = ApplicationBuilder().token("你的Token").build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling()运行后,在 TG 里找到你的机器人,发送任意文字,它就会原样回复。这段代码展示了三个关键概念:Application 是机器人实例,Handler 决定什么消息交给哪个函数处理,filters 用来过滤消息类型。
第四步:理解消息处理模型
TG 机器人有两种获取更新的方式:轮询(polling) 和 Webhook。轮询是程序主动向 TG 服务器询问新消息,适合本地开发和测试;Webhook 是 TG 服务器把消息推送到你的公网地址,适合生产环境,响应更快、资源占用更低。
处理消息时,常见的 Handler 类型包括:
- CommandHandler:处理
/start、/help等命令 - MessageHandler:处理普通文本、图片、文件等消息
- CallbackQueryHandler:处理按钮点击回调
建议把不同功能拆成独立函数,再用 Handler 注册,避免所有逻辑堆在一个文件里。
常见问题与注意事项
1. 机器人收不到消息
先检查 Token 是否正确、程序是否在运行。如果使用轮询,确认没有同时运行多个实例,否则会出现冲突。另外,机器人只能收到用户主动发送的消息,无法主动读取群聊历史。
2. 群组里不回复
TG 机器人默认只能收到以 / 开头的命令,或者被 @ 提及的消息。如果希望机器人读取群内所有消息,需要在 BotFather 中使用 /setprivacy 关闭隐私模式,并把机器人重新加入群组。
3. Token 安全
不要把 Token 提交到 GitHub。一旦泄露,他人可以完全控制你的机器人,包括发送消息、读取更新。建议使用环境变量,并定期检查代码仓库。
4. 频率限制
TG 对机器人发送消息有频率限制,单个聊天每秒约 1 条,群组每分钟约 20 条。批量发送时要加延时,否则会触发 429 错误。不要用机器人做群发广告,容易被封禁。
进阶方向
掌握基础后,可以继续学习:Inline 模式(在任意聊天框输入 @机器人名 直接调用)、自定义键盘和按钮、支付接口、Webhook 部署(配合 Flask 或 FastAPI 部署到云服务器)。如果机器人需要处理大量并发,建议转向 aiogram 的异步写法。
总结
用 Python 开发 TG 机器人的门槛不高,核心是注册 Token、选对库、理解 Handler 模型。新手从轮询和回声机器人开始,跑通后再逐步加功能。遇到问题时,优先查阅库的官方文档和 TG 官方的 Bot API 说明,比盲目搜索更可靠。