很多人使用 Telegram 时,最开始只是加入频道、接收通知,或者和朋友聊天。但如果你稍微深入一点,会发现 Telegram Bot 是一个很实用的自动化工具。
它可以用来做很多事情,比如自动回复用户消息、接收网站或服务器通知、管理群组和频道、做简单的客服机器人、记录订单、提醒任务、转发消息,甚至还可以和自己的项目系统做联动。
对于个人开发者、站长、频道运营者来说,Telegram Bot 的门槛不算高。只要有一点 Python 基础,就可以做出一个能运行的机器人。
这篇文章就用最简单的方式,带你从 0 开始做一个 Telegram 自动回复机器人。
一、Telegram Bot 是什么?
Telegram Bot 可以理解成一个运行在 Telegram 里的自动化账号。
普通账号需要人手动回复消息,而 Bot 可以根据代码逻辑自动处理消息。比如用户发送 /start,机器人自动回复欢迎语;用户发送普通消息,机器人可以自动回复、转发给管理员,或者保存到数据库。
常见使用场景有:
-
项目通知
服务器异常、订单提醒、网站报警,都可以通过 Bot 推送到 Telegram。 -
客服转发
用户给机器人发消息,机器人转发给管理员,管理员再回复用户。 -
频道运营
用 Bot 辅助发布内容、提醒用户、管理关键词。 -
自动化工具
比如签到、查询、表单收集、文件转发等。
二、创建机器人:使用 BotFather
在 Telegram 里创建 Bot,需要先找到官方机器人 BotFather。
操作流程:
- 打开 Telegram
- 搜索
BotFather - 点击开始
- 发送命令:
/newbot
然后 BotFather 会让你设置两个东西:
机器人名称
机器人用户名
机器人用户名必须以 bot 结尾,比如:
my_test_helper_bot
创建完成后,BotFather 会给你一段 Token。
这个 Token 很重要,相当于机器人的密码。别人拿到 Token,就可以控制你的机器人,所以不要随便发到公开文章、截图或者代码仓库里。
三、准备 Python 环境
这里使用 Python 来写 Bot。建议使用 Python 3.10 或以上版本。
先安装依赖:
pip install python-telegram-bot --upgrade
安装完成后,可以创建一个文件:
bot.py
四、写一个最简单的自动回复机器人
下面是一个基础版本:用户发送 /start 时,机器人回复欢迎语;用户发送普通文本时,机器人会自动回复一段内容。
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, filters
BOT_TOKEN = "这里换成你的机器人TOKEN"
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(
"你好,我是一个 Telegram Bot。\n"
"你可以给我发送任意消息,我会自动回复。"
)
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_text = update.message.text
await update.message.reply_text(
f"我收到你的消息了:{user_text}"
)
def main():
app = ApplicationBuilder().token(BOT_TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
print("机器人已启动...")
app.run_polling()
if __name__ == "__main__":
main()
把 BOT_TOKEN 替换成你从 BotFather 获取的 Token,然后运行:
python bot.py
如果终端显示:
机器人已启动...
说明机器人已经开始运行了。
这时候打开 Telegram,找到你的机器人,发送:
/start
机器人就会自动回复。
五、代码简单解释
这段代码主要分成几个部分。
1. 导入依赖
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, filters
这里主要用到了 Telegram 消息对象、应用构建器、命令处理器和消息处理器。
2. 处理 /start 命令
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("你好,我是一个 Telegram Bot。")
当用户发送 /start 时,就会触发这个函数。
3. 处理普通消息
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_text = update.message.text
await update.message.reply_text(f"我收到你的消息了:{user_text}")
这部分会接收用户发来的普通文本,并自动回复。
4. 启动机器人
app.run_polling()
run_polling() 的作用是让程序持续监听 Telegram 消息。只要程序不关闭,机器人就会一直在线。
六、进阶:做一个简单客服转发机器人
如果你想让机器人把用户消息转发给管理员,可以增加一个管理员 ID。
示例思路:
ADMIN_ID = 123456789
当普通用户发消息时,机器人把消息发给管理员:
await context.bot.send_message(
chat_id=ADMIN_ID,
text=f"用户 {update.message.from_user.id} 发来消息:\n{update.message.text}"
)
这样就可以做一个最基础的客服转发机器人。
后面还可以继续扩展:
- 管理员回复用户
- 保存用户 ID
- 添加按钮菜单
- 记录订单信息
- 对接网站后台
- 对接数据库
- 添加关键词自动回复
七、Bot 开发时需要注意什么?
1. Token 不要泄露
Token 相当于机器人的控制权限。建议不要直接写在公开代码里,可以放到环境变量中。
例如:
import os
BOT_TOKEN = os.getenv("BOT_TOKEN")
这样更安全。
2. 程序需要一直运行
如果你在自己电脑上运行,电脑关机后机器人就会离线。
如果想长期在线,可以部署到:
- 云服务器
- Docker
- 宝塔面板
- Railway
- Render
- 其他支持 Python 的平台
3. 不要一开始写太复杂
刚开始建议先做最简单的功能,比如:
/start欢迎语- 自动回复
- 消息转发
- 按钮菜单
等基础逻辑跑通后,再考虑数据库、订单系统和后台管理。
4. 注意用户隐私
如果机器人会收集用户消息、订单、联系方式,一定要注意数据安全,不要随意公开用户 ID、聊天记录或敏感信息。
八、适合新手练习的 Bot 功能
如果你刚开始学习 Telegram Bot,可以按这个顺序练习:
- 自动回复机器人
- 关键词回复机器人
- 消息转发机器人
- 按钮菜单机器人
- 群组管理机器人
- 频道通知机器人
- 简单订单机器人
- 数据库存储机器人
这个顺序比较适合新手,不会一开始就太复杂。
九、总结
Telegram Bot 的入门门槛并不高。最核心的流程就是:
- 用 BotFather 创建机器人
- 获取 Token
- 安装 Python 依赖
- 写处理消息的代码
- 运行程序
- 根据需求继续扩展功能
对于开发者、站长和频道运营者来说,Bot 是一个很实用的自动化工具。它可以用来做通知、客服、管理、转发、查询和任务提醒。
如果只是学习,可以先从自动回复开始;如果想做实际项目,可以继续扩展到客服系统、订单系统、数据库和后台管理。
Telegram 的玩法很多,Bot 只是其中一个入口。后面还可以继续研究频道运营、账号安全、Premium 功能、群组管理等内容。对于新手来说,先把基础工具用明白,再逐步搭建自己的自动化流程,会更稳一些。