在日常运营或团队协作中,常会遇到这样的需求:当群成员 A 在 Telegram 群组中发送 Excel 或 TXT 文件时,Telegram机器人自动将该文件转发给非成员 B 和 C,并由自动回复一句“收到”确认。
这个需求如果手动处理显然效率低下,于是我基于 python-telegram-bot 和 Render 平台,构建了一个自动监听并转发的 Bot 工具。
🛠 技术选型
技术 | 用途 |
---|---|
Render.com | 无服务器部署平台,方便托管 Python 项目 |
python-telegram-bot==20.6 | Telegram Bot 开发框架 |
Python 3.10+ | 项目主语言 |
Webhook 模式 | 实时监听 Telegram 消息 |
Telegram Bot | 用于与 Telegram API 通信 |
🧩 功能设计
🎯 功能点
- 监听指定群组中成员A的发言,如果A发送了包含excel文件的会话就转发给非群成员B和C
- 判断文件类型
- 只处理
.xls
,.xlsx
,.txt
文件
- 只处理
- 转发至指定用户(B 和 C)
- 自动回复“收到”
👥 示例角色
角色 | 描述 |
---|---|
A | 群组发文件的人 |
B | 接收人 |
C | 另一位接收人 |
Bot | 自动化处理器 |
🚀 部署流程(Render)
1. 建立机器人
在telegram 里找@BotFather建立一个机器人,然后利用@XiaoGuiDangJia_ID_BOT 找到A、B、C 的telegram ID
把机器人拉进群里,给予管理员权限。
2. 创建 GitHub 仓库。
可以folk我的仓库 https://github.com/clicocc/telegrambot/
3. 在 Render 创建 Web Service
注册个Render账号,选择免费版本就够用了。
- 新建 Render Web Service
- 连接你的 GitHub 仓库或者直接上传代码包
- Build Command 填写:pip install -r requirements.txt
- Start Command 填写:python bot.py
4. 添加环境变量(如 BOT_TOKEN)
- 登录 Render 控制台
- 进入你的服务页面
- 找到 Environment(环境变量)设置
- 修改或新增你想改的变量(比如 WEBHOOK_URL)
WEBHOOK_URL这个地址先顺便填写个,后面拿到正确的地址,再去改即可。
变量名 | 说明 | 示例 |
---|
BOT_TOKEN | 你的 Telegram Bot Token | 123456789:ABCdefGhIjKlMnOp |
A_ID | A 的 Telegram 用户 ID (整数) | 123456789 |
B_ID | B 的 Telegram 用户 ID (整数) | 987654321 |
PYTHON_VERSION | 强制 Render 使用 Python 3.10 或 3.11,因为 python-telegram-bot==20.6 不兼容 Python 3.13 |
3.10.13 |
C_ID | C 的 Telegram 用户 ID (整数) | 135792468 |
WEBHOOK_URL | 你的项目公网 HTTPS 地址,机器人的 webhook 地址 | https://telegrambot-mk75.onrender.com |
5. 设置 Telegram Webhook
手动调用 API 设定 webhook,示例(替换成你的 BOT_TOKEN 和 WEBHOOK_URL):
https://api.telegram.org/bot/setWebhook?url=
例如我的 https://api.telegram.org/bot7059385486:AAGdXFUQ3HymKW2ectEuTYojqu06aoSZ6Eg/setWebhook?url=https://telegrambot-mh78.onrender.com
把上面的webhook地址复制到浏览器中打开。 如果提示{“ok”:true,”result”:true,”description”:”Webhook is already set”} 那么说明设置正确。
6. 服务重启
新的环境变量会生效,程序启动时能读取最新的配置
自动构建 & 部署成功
效果展示
A在群发送 Excel → Bot 检测 → 转发给B+C → 机器人自动回复“收到”
🧩 项目亮点
✅ 零服务器成本(Render 免费部署)
✅ 实时响应,基于 Webhook
✅ 精准匹配特定用户 + 文件类型
✅ 群组消息+私聊同时自动操作
🧱 后续优化点
- 支持多种文件类型
- 接收人可配置(读取 JSON 或数据库)
- 转发时添加备注或来源标识
- 增加日志记录和异常处理
📘 总结
通过这个小项目,我实现了 Telegram 群文件消息的自动监听和转发功能,大幅提升了工作效率。未来我还打算集成更多实用功能,比如 OCR 识别、关键词检测、自动归档等等。
如你也有类似需求,不妨 Fork 一下这个项目,动手试试看!
评论0