Telegram机器人开发实战:从BotFather创建到群组自动管理全流程
Telegram最与众不同的能力,就是对机器人的深度支持。从自动化客服到社群管理,从内容分发到AI对话,机器人能将Telegram从“通讯软件”变成“业务平台”。许多教程只介绍如何创建机器人,却忽略了实际部署中最关键的环节。本文不讨论基础概念,而是提供一份可直接复制的实战手册:从BotFather创建机器人到将其部署进群组并赋予管理权限,一次性跑通全流程。
一、从零创建机器人:BotFather使用详解
所有Telegram机器人都通过BotFather创建。以下是完整流程及每个步骤的注意事项。
第一步:找到BotFather
在Telegram搜索栏输入 @BotFather,这是Telegram官方机器人管理工具,点击“Start”开始对话。
第二步:发送/newbot命令
向BotFather发送 /newbot,系统会依次询问:
第三步:保存Bot Token
创建成功后,BotFather会返回一个Bot Token,格式如1234567890:ABCdefGHIjklMNOpqrsTUVwxyz。这是机器人的唯一身份凭证,任何人拿到都可以控制你的机器人,请务必妥善保存,不要上传至公开仓库
。
第四步:为机器人设置命令列表(可选但推荐)
向BotFather发送 /setcommands,按格式设置命令列表,如:
text
start - 开始使用 help - 查看帮助 status - 查询状态
设置后,用户在输入框输入/时会看到命令提示列表,提升使用体验。
二、将机器人加入群组并授予权限
对于许多自动化场景,机器人需要进入群组并拥有管理员权限才能发挥作用
。
步骤1:将机器人添加进群组
创建群组时,可直接将机器人用户名(如@my_demo_bot)选为初始成员
。如果群组已存在,进入群组资料页,找到“添加成员”入口,搜索机器人用户名添加即可。
如果搜不到机器人:确认机器人用户名输入正确;确认已在BotFather中为机器人开启“允许加入群组”的权限(默认开启,但部分设置可能被关闭)
。
步骤2:授予机器人管理员权限
这是关键步骤。机器人默认只是普通成员,无法执行删除消息、禁言等操作。
操作路径:进入群组资料页 → 点击“管理员” → “添加管理员” → 选择机器人,然后按需勾选以下权限
:
| 权限 | 用途 | 建议 |
|---|---|---|
| 删除消息 | 清理垃圾/违规信息 | ✅ 建议开启 |
| 邀请用户 | 自动拉新 | 按需 |
| 限制成员 | 禁言/拉黑 | ⚠️ 慎开,仅信任的机器人 |
| 置顶消息 | 自动置顶公告 | 按需 |
| 管理群组设置 | 修改群组名称/头像 | ❌ 通常不给 |
步骤3:将群组设置为公开类型(如需平台接入)
如果你需要通过Chat App Message Service等平台接入群组,群组和频道都必须设置为公开类型,并配置公开用户名
。
设置方法:进入群组资料页 → 编辑 → 将类型改为“公开” → 配置公开用户名(如my_public_group),完成后群组会生成公开链接https://t.me/my_public_group
。
三、开发环境搭建:Python与Node.js两种方案
以下提供两种主流开发环境的快速配置方案。
方案一:Python + pyTelegramBotAPI
python
import telebot
bot = telebot.TeleBot("YOUR_BOT_TOKEN")
# 处理 /start 命令
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, "欢迎使用!我是本群的管理机器人。")
# 处理文本消息中的特定关键词
@bot.message_handler(func=lambda message: "垃圾" in message.text.lower())
def handle_spam_keyword(message):
bot.delete_message(message.chat.id, message.message_id)
bot.send_message(message.chat.id, f"已删除疑似垃圾信息,来源:{message.from_user.username}")
# 处理群组新成员加入
@bot.message_handler(content_types=['new_chat_members'])
def handle_new_member(message):
welcome_msg = f"欢迎 {message.new_chat_members[0].first_name} 加入群组!请阅读群规。"
bot.reply_to(message, welcome_msg)
bot.polling()
pyTelegramBotAPI支持按命令、按内容类型、按正则表达式、按lambda函数等多种过滤条件注册handler,多个handler可以叠加使用TelegramBotAPI/?source=post_page-----7d4c790ad377---------------------------------------#1#1" target="_blank" rel="noopener">
。
方案二:Node.js + grammY
grammY是当前Node.js生态中功能最完整的Telegram Bot框架,支持TypeScript
。
typescript
import { Bot } from "grammy";
const bot = new Bot("YOUR_BOT_TOKEN");
// 处理 /start 命令
bot.command("start", (ctx) => ctx.reply("欢迎!机器人在线"));
// 处理消息,检测特定关键词
bot.on("message:text", (ctx) => {
const text = ctx.message.text;
if (text && text.includes("广告")) {
ctx.deleteMessage();
ctx.reply(`已删除疑似广告信息。`);
}
});
// 群组管理:自动欢迎新成员
bot.on("message:new_chat_members", (ctx) => {
const newMember = ctx.message.new_chat_members?.[0];
if (newMember) {
ctx.reply(`欢迎 ${newMember.first_name} 加入!`);
}
});
// 启动
bot.start();
四、部署与运维要点
环境变量管理:Bot Token建议存放在环境变量中,而非硬编码在代码里
:
bash
export TELOXIDE_TOKEN="your_bot_token"
长时间运行:本地运行node bot.js或python bot.py会在终端关闭后停止。建议使用pm2(Node.js)或systemd(Linux)将bot作为守护进程运行,或部署至云平台如Heroku、AWS Lambda、Google Cloud Run等
。
调试与日志:开发阶段启用详细日志能大幅提升调试效率。Node.js可设置环境变量DEBUG=grammy*,Python可配置logging模块输出详细日志TelegramBotAPI/?source=post_page-----7d4c790ad377---------------------------------------#1#1" target="_blank" rel="noopener">
。
从BotFather创建机器人到赋予群组管理员权限,再到编写核心逻辑并部署上线,这套完整流程覆盖了Telegram机器人从0到1的全部环节。Telegram Bot API的开放性使其几乎可以实现任何自动化场景,而掌握本文介绍的创建、授权、开发、部署四步法,就是解锁这一切能力的钥匙。
延伸阅读:
不止是打字——Telegram 消息格式化、日期标签和 GIF 编辑的实用技巧
Telegram 的聊天框看起来和其他通讯软件没什么区别,但它的输入框里藏着一套完整的轻量级富文本编辑系统。很多人用 T...
Telegram 的“收藏夹”不只是备忘——用标签、视图和搜索把它变成个人知识库
很多人把 Telegram 的 Saved Messages(收藏夹)当成一个“随手丢东西的地方”。看到好文章,转过去;...
从社群管理到自动化机器人——Telegram 频道、群组与 Bot 深度开发指南
Telegram 的生态魅力,不仅在于其聊天体验,更在于其强大的 频道(Channel)、超级群组(Supergroup...
告别信息过载与隐私焦虑——Telegram 高级会话管理与隐私安全深度配置指南
对于深度用户而言,Telegram 的最大痛点并非功能不足,而是信息过载与隐私暴露。订阅了大量频道、参与多个社群后,会话...
从社群运营到智能自动化——Telegram 频道、群组与 Bot 深度应用指南
Telegram 的频道、超级群组与 Bot 生态,共同构成了一个强大的内容分发与自动化管理平台。本文将聚焦频道与群组的...