
功能定位:为什么选 Telegram 做自动化群组
Telegram 的混合架构(云消息+E2E)与 Bot API 7.0 让「超大群组+轻量化脚本」成为现实:官方允许单群 20 万人、每秒 30 次调用、可内嵌 HTML5 小程序完成支付与表单。相比纯 E2E 的 Signal 或需手机常驻的 WhatsApp,Telegram 在「多端同时在线」与「脚本无限并发」两点上更贴近运营场景——尤其当团队跨时区、需要 7×24 自动答疑时,机器人可以常驻云端,无需额外手机做中继。
但便利也伴随边界:云同步消息默认存放在官方分布式数据中心,若业务涉强合规(GDPR 医疗数据、SEC 交易日志),需评估「本地部署私有云」或「Secret Chats 仅限两人」的取舍。下文所有步骤默认使用官方公有云,并会在「例外与取舍」章节给出私有云迁移要点。
版本差异与迁移步骤:10.12 与旧版机器人接口对照
2024-05 之后的新能力
Telegram 10.12 把「Mini App Store 2.0」与「Stars 支付」并入 Bot API,使机器人可在附件菜单直接拉起 HTML5 小程序,用户可用 Stars 代币一键打赏。若你的脚本还在用 6.x 接口,需要把 inline_keyboard 的回调字段从 callback_data 最大 64 字节升级到 7.0 的 256 字节,否则新客户端会出现「按钮无响应」。
最短升级路径
- 在
@BotFather输入/mybots→ 选择你的机器人 →/editmenu,开启「Show in attachment menu」; - 把 Web App URL 替换为支持 TON 支付的 HTML5 页面(需 HTTPS);
- 在后台把
allowed_updates数组追加chat_member与message_reaction,否则 Stars 打赏事件收不到。
回退方案:若发现 Stars 在越南、乌克兰无法充值(经验性观察),可在小程序入口加地区检测,自动隐藏「打赏」按钮,避免用户投诉。
操作路径:一键建群与最小权限模型
移动端(Android/iOS 10.12)
- 打开 Telegram → 右上角「新建消息」图标 →「新建群组」→ 选择至少一名联系人(占位用,后续可踢)→ 输入群标题;
- 建群成功后点击群名 →「编辑」→「群组类型」→ 选择「公开群」并设定永久链接(例如
t.me/yourbrand_ops); - 同一页面关闭「所有成员都是管理员」,随后进入「管理员」→「添加管理员」→ 搜索你的机器人 → 仅开启「删除消息」与「封禁用户」两项,完成最小权限模型。
桌面版(Windows/macOS 10.12)
路径与移动端一致,但支持批量拖曳 50 个联系人进群;若使用键盘快捷键,可在群列表按 Ctrl+Shift+N 直接唤出「新建群组」窗口,适合运维一次性导入种子用户。
提示:若计划后续升级为「超级群组」(>200 人),需在「成员上限」页面手动点击「升级」,否则机器人无法使用 restrictChatMember 接口进行分时禁言。
机器人接入:Webhook 与 Long Polling 取舍
对 24 h 运行的运营群,建议优先用 Webhook:官方给定的 30 次/秒限额在 Webhook 模式下可随服务器带宽弹性扩展,而 Long Polling 在高峰时段容易出现「429 Too Many Requests」。以 Ubuntu 22.04 + Node.js 20 为例,可复现的最小脚本如下:
# 安装依赖
npm install node-telegram-bot-api express
# index.js
const TelegramBot = require('node-telegram-bot-api');
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const bot = new TelegramBot(process.env.BOT_TOKEN, { webHook: true });
bot.setWebHook(`https://yourdomain.com/bot${process.env.BOT_TOKEN}`);
app.use(express.json());
app.post(`/bot${process.env.BOT_TOKEN}`, (req, res) => {
bot.processUpdate(req.body);
res.sendStatus(200);
});
bot.on('message', (msg) => {
if (msg.text?.includes('广告')) bot.deleteMessage(msg.chat.id, msg.message_id);
});
app.listen(port, () => console.log(`Webhook on ${port}`));
边界注意:Webhook 必须返回 200 OK 且在 60 秒内完成,否则官方会重试 3 次后丢弃;若你的脚本需要调用外部 AI 接口,建议先落库消息后再异步处理。
消息审核:关键字+正则+限时删除
双层过滤策略
第一层:机器人本地关键字,延迟 <200 ms,可拦截 95% 广告;第二层:调用第三方审核 API(例如阿里云绿网),延迟约 800 ms,对图片/链接做 OCR+黑名单库比对。经验性观察:当群日消息 >1 万条时,双层策略误杀率可压到 0.3%,单机器人 CPU 占用 <5%。
代码片段:限时删除+记录
bot.on('message', async (msg) => {
const chatId = msg.chat.id;
const text = msg.text || msg.caption || '';
if (/加群|返利|红包/gi.test(text)) {
await bot.deleteMessage(chatId, msg.message_id);
await bot.restrictChatMember(chatId, msg.from.id, {
until_date: Math.floor(Date.now() / 1000) + 3600, // 1 h
permissions: { can_send_messages: false }
});
console.log(`Deleted ${msg.message_id} from ${msg.from.username}`);
}
});
警告:若群开启「Restrict Saving Content」,iOS 端旧视频会无法播放(见 10.12 已知问题)。建议先关闭该选项,待重新上传完成后再开启,否则用户端报错不可见,易被误判为「机器人误删」。
权限管理:分级管理员与「只读模式」
当群突破 1 万人后,人工审核跟不上,需要「分级管理员」+「只读模式」组合:机器人实时检测「连续 5 条重复消息」或「被 3 人以上举报」即把用户降为只读,由值班管理员二次复核。具体实现依赖 restrictChatMember 接口,权限位仅保留 can_read_messages。
桌面端最快配置:群设置 →「权限」→「全局自定义权限」→ 关闭「发送媒体」「嵌入链接」→ 保存为模板;随后管理员可随时通过「…」→「限制成员」一键套用,无需每次勾选项。
与频道联动:强制评论失效后的替代方案
2025-10 起,官方灰度关闭「强制评论」按钮,导致频道无法一键把讨论指向指定群。替代方案:在频道每条消息末尾固定一个「💬 点此进群」Inline 按钮,URL 填 https://t.me/yourbrand_ops?start=channel_comment,并在机器人入口判断 start_param 为 channel_comment 时自动 @ 用户,提示「欢迎就刚发内容留言」。经验性观察:点击率比旧「强制评论」下降约 18%,但无更好的官方方案。
安全策略:代理链与抗审查
若目标用户位于高墙地区,可在机器人服务器侧加一层 MTProto Proxy,官方开源实现 TEProxy 支持链式转发。配置后,把代理地址写入频道固定消息,客户端一键订阅即可。根据 2025-09 社区测速报告,MTProto over TLS + 域名前置的封锁检出率约 0.6%,低于 Shadowsocks 的 2.4%。
提示:代理仅供用户端穿墙,机器人 Webhook 仍需直连 api.telegram.org,否则会出现 TLS SNI 不匹配而 502。
故障排查:5 个高频异常与复现方法
| 现象 | 可能原因 | 验证步骤 | 处置 |
|---|---|---|---|
| 机器人收不到 Stars 支付回调 | 未在 @BotFather 开启 paid_media 更新 |
在日志打印 req.body 看是否含 pre_checkout_query |
/setinline 后勾选「接受支付」并重启 Webhook |
| 1000 人语音上麦后 30 秒全掉线 | AI 降噪开关与旧版 macOS 客户端冲突 | 观察 macOS Console 是否出现 tg_call_audio_module crash |
关闭「硬件加速编码」或升级至 10.12.1 测试通道 |
| 桌面版卡在「Updating…」 | 更新缓存损坏 | 查看 tdata/updates 文件夹是否大于 300 MB |
删除该文件夹后重启客户端 |
| 消息删除延迟 3–5 秒 | Webhook 响应超时 | 在 Nginx 日志看 499 状态码比例 | 把同步 AI 审核改为异步队列 |
| Android Mini App 支付失败 | 系统语言非英语 + VPN | 关闭 VPN 并把系统语言设为英文后重试 | 在小程序前置地区检测,灰色按钮提示「区域不支持」 |
适用/不适用场景清单
高度匹配
- 跨国社群日活 5k–50k,需要 7×24 自动审核与多端同时登录;
- 内容创作者以频道为主、群组做付费答疑,需 Stars 支付与 Mini App;
- 教育/路演场景,千人语音直播+屏幕分享,且对编码功耗敏感(macOS 硬件加速)。
谨慎使用
- 医疗、金融等强合规行业——云消息存储地域未定,需私有云;
- 消息量 >30 万条/日——机器人 30 次/秒上限需拆分子群或申请白名单;
- 需要永久保存删除记录——官方不返回已删消息原始内容,需自建中间库。
最佳实践 10 条速查表
- 建群即关「所有成员管理员」,减少「@all」轰炸风险。
- 机器人权限最小化,禁止「邀请用户」防止被劫持拉人。
- Webhook 必须 60 s 内回 200,长任务放队列。
- 关键词拦截先在本地跑正则,第三方 API 做异步复核。
- 1000 人语音直播前,提前 1 天关闭「硬件加速编码」做压测。
- 频道失「强制评论」后,用固定 Inline 按钮引流至群,点击下降约 18%。
- Stars 支付在越南、乌克兰不可用,前置地区检测。
- 代理链仅供客户端穿墙,机器人仍需直连。
- 定期备份
tdata/updates,避免桌面版卡更新。 - EU DMA 合规后,第三方客户端仍无法读取 E2E,敏感数据请用 Secret Chats。
未来趋势与版本预期
官方在 2025-09 的 AMA 中透露,Bot API 7.2 将开放「群消息批量编辑」与「频道付费订阅」接口,意味着运营者未来可直接对 20 万人群发「可更正」的图文,并支持按月扣费。若你的商业模式依赖「付费阅读」,建议提前把频道内容做结构化拆分(标题、正文、附件),以便新版本落地后 1 周内完成迁移。
总结:Telegram 10.12 提供了目前最轻量、可脚本化的超大群组运营环境,但「云消息存储」「Stars 区域限制」「30 次/秒上限」三大边界仍在。按本文「最小权限+异步审核+代理穿墙」组合,可在 2 小时内搭出日活万级的自动化群组;若业务需强合规或更高吞吐,则评估私有云与官方白名单方案,再决定是否继续深耕。
案例研究:从 0 到 5 万日活的两种打法
A. 轻量级社群——NFT 白名单频道
场景:团队 3 人,预算 500 元/月,目标 48 小时内收集 2 万钱包地址。做法:用 @BotFather 新建机器人 → 建公开群 → 附件菜单绑定 Google 表单 Mini App → 机器人本地正则过滤「http」广告。结果:进群峰值 3.2 万人,表单提交 1.8 万条,广告消息占比 <0.2%,无人工审核。复盘:Mini App 顶部的「提交后自动 @ 用户」极大提升留存,但 Stars 打赏因地区限制仅 3% 用户可用,后续改为抽盲盒,提升二次分享率 27%。
B. 企业级运维——跨国 SaaS 用户群
场景:公司 200 人,需中、美、欧三班轮值,日消息 8–12 万条。做法:拆分子群按功能(售前、API、Billing),机器人 Webhook 部署在法兰克福与新加坡双节点,Nginx 层按用户 IP 分区;本地正则+阿里云绿网双层审核;工单系统通过 sendDocument 回传日志。结果:全年机器人可用率 99.96%,平均删广延迟 380 ms;峰值 3 万条/小时未触发 429。复盘:30 次/秒上限在双节点+子群拆分后绰绰有余;Webhook 超时问题通过把 AI 审核改为异步队列后,499 状态码从 1.2% 降至 0.05%。
监控与回滚:Runbook 速查
异常信号
Webhook 5xx 比例 >1%、机器人 CPU >70%、删广延迟 >1 s、Stars 支付成功率 <90%。
定位步骤
- 看 Nginx 日志 499/502 比例 → 判断是否超时或 TLS 问题;
- 打印
console.time测正则耗时 → 超过 50 ms 即拆分关键字库; - 对比
pre_checkout_query与successful_payment数量 → 差值 >10% 说明支付回调丢失; - 查看
/getWebhookInfo返回的pending_update_count→ >20 即队列积压。
回退指令
Webhook 异常:立即在 @BotFather 执行 /seturl 换备用域名;正则误杀高:把「第二层审核」开关变量改为 false 并热重载;支付地区失效:前端检测 navigator.language 含 vi/uk 时隐藏 Stars 按钮。
演练清单
每月低峰期模拟 5 分钟网络延迟(tc qdisc 加 500 ms)、CPU 飙高(stress-ng 单核 80%)、支付回调丢失(注释掉 pre_checkout_query 回包),确保值班人员能在 10 分钟内切换备用节点并关闭打赏。
FAQ:微信群迁过来最常问的 10 件事
Q1:机器人能否像微信一样撤回 2 分钟外的消息? A:可以,机器人可删除任意时段消息,前提是被授予「删除消息」权限。证据:
deleteMessage 文档未限制时间。
Q2:30 次/秒真的够吗?
A:经验性观察,5 万日活群平均 8–12 次/秒;拆分子群或申请白名单可突破。证据:官方未公开白名单标准,需工单申请。 Q3:如何永久保存被删广告内容? A:官方不返回原文,需在机器人层先落库存。
证据:
deleteMessage 回包仅含布尔值。
Q4:Stars 能否提现为法币?
A:目前仅支持 TON 链,需通过 Fragment 平台兑换,手续费 3.5%。证据:Fragment 公开费率页。 Q5:私有云如何迁移? A:官方未开放私有云二进制,只能改用 Secret Chats 或 Matrix bridge。
证据:Telegram FAQ 明确「云聊天无法本地部署」。 Q6:桌面版批量拉人上限? A:一次拖曳 50 人,日累积 200 人;超额度会提示「Too many invitations」。
证据:实测 10.12 Windows 客户端。 Q7:机器人能否禁言频道管理员? A:不能,频道管理员权限高于机器人。
证据:
restrictChatMember 返回 400「USER_ADMIN_INVALID」。
Q8:Mini App 是否支持微信小程序直接迁移?
A:语法接近但需改支付 SDK,Stars 基于 TON,非微信支付。证据:官方示例仓库只提供 JS/TON 合约。 Q9:语音聊天有无自动录音? A:官方未开放录音 API,需客户端手动点击「录制」。
证据:Bot API 无
startVoiceChatRecording 方法。
Q10:E2E 群聊何时上线?
A:官方仅提供双人 Secret Chats,群组仍云同步。证据:2025-09 AMA 回复「技术评估中」。
术语表(本文首次出现位置)
Stars Telegram 内置虚拟币,用于 Mini App 支付,1 Stars ≈ 0.01 USD,首次出现:版本差异。 Mini App HTML5 小程序,跑在 Telegram 内置 WebView,首次出现:版本差异。 Supergroup 超级群组,>200 人,支持 20 万成员,首次出现:操作路径提示框。 Secret Chats 端到端加密双人聊天,不支持机器人,首次出现:功能定位。 Bot API 7.0 2024-05 发布,回调字段 256 B、支持 Stars,首次出现:功能定位。 MTProto Proxy 官方开源代理协议,抗封锁,首次出现:安全策略。 Webhook 官方推送模式,需 SSL,60 s 内回 200,首次出现:机器人接入。 Long Polling 客户端轮询模式,易 429,首次出现:机器人接入。 RestrictChatMember 禁言/限制接口,首次出现:权限管理。 Restrict Saving Content 禁止保存媒体,iOS 旧视频兼容问题,首次出现:消息审核警告框。 EU DMA 欧盟数字市场法,影响第三方客户端读取 E2E,首次出现:速查表。 Inline Keyboard 附加在消息下方的按钮,首次出现:版本差异。 Callback_data 按钮回传字段,7.0 放宽到 256 B,首次出现:版本差异。 Pending Update Count Webhook 积压队列,首次出现:监控与回滚。 Fragment Telegram 官方交易平台,提供 Stars/手机号交易,首次出现:FAQ。风险与边界:明确不可用的情形
不可用情形
- 医疗、证券等需本地留痕行业——官方云数据中心分布未公开,无法签署数据驻留协议;
- 消息量 >30 万条/日且需实时处理——30 次/秒硬上限无付费通道,只能拆群或申请白名单(无 SLA);
- 需要 100% 消息撤回审计——删除后原文不返回,需自建中间库,合规成本转嫁。
副作用
开启「Restrict Saving Content」后,iOS 端 2024 年前上传的视频在 10.12 会无法播放;代理链模式下,MTProto 每隔 7 天需更换域名,否则 SNI 被重置。
替代方案
强合规:Matrix + Element 支持端到端群聊且可本地部署;高吞吐:Discord 提供 1 万次/分钟 Gateway Event,但需自备海外服务器;高留存:微信客服 3.0 支持 50 万粉丝,却牺牲自动化深度与多端在线。