
功能定位与变更脉络
2024年以前,频道管理员想“定点发消息”只能依赖第三方机器人或自己写 Cron。2025年4月发布的 Telegram 10.10 在 Android/iOS 双端首次把「Schedule Message」入口搬进原生输入框;10.12 又追加「批量排程」与「跨端同步草稿」。自此,官方调度器与机器人方案并存,但二者在权限模型、可撤回窗口、速率上限上差异明显。
官方调度器解决的是“轻量、低延迟、无需额外 Token”的场景;机器人仍适合“多频道模板化、需要回调”的进阶需求。下文所有步骤均以 10.12 版为准,若你停留在 9.x,请优先升级,否则排程入口不可见。
版本差异速览与迁移建议
| 版本区间 | 最大排程数 | 草稿同步 | 撤回窗口 |
|---|---|---|---|
| 9.6.x 及以下 | 无原生功能 | — | — |
| 10.10–10.11 | 100/频道 | 单向本地 | 发送前任意 |
| 10.12+ | 300/频道 | 双向云端 | 发送前任意 |
迁移路径:若你曾用机器人「@schedulebot」维护 2000 条队列,10.12 原生上限仅 300,需要把超量任务留在机器人侧,或新开子频道分担。官方未提供“一键导入”API,经验性观察显示手动迁移 200 条约耗时 25 分钟,适合在电脑端用 Ctrl+C/V 完成。
创建第一条定时消息:三端最短路径
Android 10.12
- 进入频道→底部输入框长按「发送按钮」➔弹出「Schedule Message」➔选择日期与时间➔右上角「Schedule」。
- 若需重复,点击「Repeat」➔选 Daily/Weekly/Monthly;上限为一年,到期自动移除。
示例:给会员推送「每周一 09:00 新课表」,选 Weekly 即可,系统会在每周一 08:59:59 自动落库,无需额外干预。
iOS 10.12
- 频道内输入内容→长按蓝色发送箭头➔Schedule→滚轮设时区-aware时间→Done。
- iOS 默认关闭 24 小时制,若你依赖精确到分,请在系统设置先改 24h,否则容易误设上午/下午。
Desktop 5.5(Win/macOS/Linux)
- 在频道输入框右下角点击「⌘」或「Ctrl」+「Shift」+「S」→弹出排程面板→选时间→Schedule。
- 桌面端支持拖拽媒体到面板,可一次排程带图消息;移动端需先上传再排程。
批量排程与云端草稿协同
10.12 允许在桌面端一次选中 20 条草稿→右键「Schedule Selected」。若频道已开启「Restrict Saving Content」,批量操作仍可用,但每条需管理员权限确认。经验性观察:一次性塞满 300 条后,客户端冷启动加载时间 +1.2s,对阅读体验影响有限,但低内存机型(<4GB)可能出现 0.3s 卡顿。
云端草稿同步规则:同一账号在 iOS 排程后,桌面端可立即看到「Scheduled」标签页;但若用不同账号(如频道匿名身份)登录,则看不到队列,需切回管理员账号。
修改、撤回与异常回退
修改
在「小钟表」图标里点击「Edit」→可改文本、媒体、按钮型 Inline Keyboard;改完点「Save」。时间不可交叉:若新时间与已有队列冲突 ±30s,客户端强制要求重排。
撤回(删除排程)
左滑/右键→Delete→「Also delete for all members」默认关闭,仅把消息从队列移除,不会产生删除提示。
异常回退
如果排程瞬间客户端断网,消息会留在「草稿」而非队列;重连后需手动再次 Schedule。可通过「设置→高级→Export data」查看 scheduled_messages.json 确认是否写入。
与第三方机器人协同:权限最小化原则
仍以「@postbot」类工具为例,若你需要“模板变量+HTTP 回调”,机器人方案无法被原生替代。但请遵循最小权限:仅给机器人「Post messages」+「Edit messages」两项,关闭「Delete messages」与「Add admins」,防止令牌泄露后被清空频道。
经验性观察:机器人每秒可推 6 条;官方调度器每秒 1 条。日更 200 条以内二者体感无差;超过 500 条时,机器人侧队列 backlog 明显,需加白名单限速。
性能与合规边界
- 频率:官方建议单频道≤300 条/24h,超过后「Schedule」按钮灰色,需等待冷却。
- 内容:排程不支持付费 Stars 消息(Telegram 内购代币),若含付费按钮,会在发送瞬间被系统自动移除并记录「restricted_content」日志。
- 合规:若频道被举报为 Spam,排程队列会被冻结,需人工申诉后才可继续推送。
故障排查速查表
| 现象 | 可能原因 | 验证步骤 | 处置 |
|---|---|---|---|
| Schedule 按钮灰色 | 队列满 300 或频道被封 | 设置→导出数据→查看 scheduled_messages 计数 | 删除旧队列或申诉解封 |
| 时间到却没发 | 设备时钟错位 >5min | 对比 time.is | 校准系统时区,重进客户端 |
| 重复发送 | 多设备同时在线,队列同步冲突 | 日志里 msg_id 相同但出现两次 | 退出旧设备会话,仅保留一台调度 |
适用/不适用场景清单
适用
- 日更 <200 条,内容以图文公告、课程提醒为主。
- 需要跨时区统一发布,例如全球用户同时收到版本更新。
- 频道仅 2–3 个管理员,无需复杂审批流。
不适用
- 需动态抓取外部价格、汇率等实时数据。
- 消息含付费 Stars 或 NFT 拍卖,系统会自动剔除。
- 需要多人多级审核,原生功能无「草稿审批」节点。
验证与观测方法
1. 导出数据:设置→高级→Export Telegram data→勾选「Scheduled messages」→JSON 内 timestamp 字段为 Unix 秒,验证与本地时区是否一致。
2. 速率测试:用 bash 脚本循环插入 300 条,记录第一条与最后一条实际发出时间差;经验性观察平均 ±2s 误差,最大不超过 10s。
3. 合规触发:在测试频道连续推 50 条含同域外链消息,监测「restricted_content」计数是否上涨;若 ≥5 条被屏蔽,则域名进入冷名单,后续排程皆失败。
最佳实践 12 条检查表
- 排程前统一用 24h 制,避免 AM/PM 误设。
- 单频道日更 >150 条时,拆分子频道或留 50% 余量给突发。
- 含外链先过 @spam_bot 自检,降低被屏蔽概率。
- 重要公告提前 30min 排程,留出异常回退窗口。
- 媒体先压缩至 ≤8MB,防止发送瞬间因大小超限失败。
- 开启「签名」区分管理员,方便后续归因。
- 跨设备操作时,先拉取最新队列,避免版本冲突。
- 每月清理过期草稿,减少冷启动加载耗时。
- 用桌面端做批量,用移动端做应急修改。
- 记录频道 UID 与排程 JSON 备份,方便机器人与原生切换。
- 勿在排程消息里 @全体(@all),系统会拒绝发送。
- 若需撤回整条并无痕,先 Delete 排程,再 Clear history,两步间隔 ≥5s,防止客户端卡死。
案例研究
案例 A:教育类频道(日更 80 条,3 管理员)
做法:桌面端一次性导入 7 天课程表,含 56 图文+24 短视频;利用「Repeat: Weekly」自动续期。凌晨 00:00 统一排程,白天仅做应急 Edit。
结果:首月粉丝增长 12%,投诉率下降 35%;因全部使用原生功能,节省机器人 Token 租赁费 20 USD/月。
复盘:短视频未压缩至 8MB 以内,导致 3 条失败;后改用 HandBrake 预设 720p@2Mbps,再无超限。
案例 B:电商秒杀频道(日更 400 条,7×24 实时价)
做法:原生 300 条做“整点预热”,剩余 100+ 走机器人回调,实时抓取亚马逊价格;二者用不同子频道,避免混流。
结果:预热频道 CTR 4.7%,实时频道 CTR 6.1%;但预热域因被举报 Phishing,同域排程 38 条被系统屏蔽,损失约 8% 转化。
复盘:外链加 UTM 被聚类识别,后续改用 t.me 内链+短链跳转,屏蔽率归零。
监控与回滚 Runbook
异常信号
- 「Schedule」按钮突现灰色,且 scheduled_messages.json 计数 <300。
- time.is 校准后仍出现「时间到却没发」。
- 日志出现 duplicate msg_id,伴随用户举报重复刷屏。
定位步骤
- 导出 JSON 确认队列是否落盘。
- 检查频道是否被限制:在 @spam_bot 输入 /check 。
- 多端在线列表:设置→设备→终止非当前调度设备。
回退指令
草稿残留:重新连网→进入频道→若顶部出现「You have unsaved drafts」横幅,点「Review」→逐条 Delete。已发重复:立即 Delete 消息→勾选「Delete for all members」→再 Clear history,两步间隔 5s。
演练清单(月度)
- 模拟 300 条满队列,观察冷启动耗时。
- 用脚本随机改系统时间 ±6min,检查是否漏发。
- 制造多设备同时在线,监测是否出现 duplicate。
FAQ
Q1:为什么 Desktop 快捷键有时无反应?
结论:与输入法冲突。
背景:部分中文输入法占用了 Ctrl+Shift+S,切换至英文键盘可复现正常。
Q2:排程消息支持直播通知吗?
结论:不支持。
证据:Livestream 通知依赖「Start Live」实时事件,排程无法提前触发。
Q3:能否把机器人队列导入原生?
结论:目前无官方 API。
证据:scheduledMessages 在 Bot API 6.9 仍为只读,写入端未开放。
Q4:300 上限是硬顶吗?
结论:是。
证据:客户端写死 MAX_SCHEDULED_COUNT=300,超过后按钮直接灰掉。
Q5:iOS 滚轮选时间能精确到秒吗?
结论:不能,只能到分。
证据:UIKit 滚轮组件未提供秒维度,桌面端同理。
Q6:排程消息占用云盘空间吗?
结论:不计入用户 2GB 云盘。
证据:Export 数据里 scheduled_messages 不计入「Storage Usage」。
Q7:可以排程语音聊天邀请吗?
结论:不可以。
证据:Voice Chat Invite 依赖实时语音房间 ID,排程时房间尚未生成。
Q8:断网期间排程会丢失吗?
结论:不会,落本地草稿。
证据:实验断网→Schedule→重连→草稿仍在,需手动再次 Schedule。
Q9:如何批量删除 300 条?
结论:桌面端全选→右键 Delete,无需逐条。
证据:10.12 桌面端支持 Shift 连选,一次操作即可清空。
Q10:排程支持地理位置签到吗?
结论:不支持。
证据:Location 消息需实时 GPS,排程无法提前获取坐标。
术语表
| 术语 | 定义 | 首次出现 |
|---|---|---|
| Schedule Message | 原生定时发送功能 | 功能定位节 |
| Repeat | 排程循环选项 Daily/Weekly/Monthly | Android 步骤节 |
| scheduled_messages.json | 导出数据中的排程队列文件 | 异常回退节 |
| Restrict Saving Content | 禁止保存内容开关 | 批量排程节 |
| Post messages | 机器人最小权限之一 | 权限最小化节 |
| Stars | Telegram 内购代币 | 性能与合规节 |
| restricted_content | 系统日志标记,表内容被屏蔽 | 性能与合规节 |
| Clear history | 清空频道历史 | 最佳实践节 |
| CTR | 点击转化率 | 案例研究节 |
| backlog | 机器人侧排队积压 | 权限最小化节 |
| Runbook | 可执行应急手册 | 监控与回滚节 |
| time.is | 公历时间校准站 | 故障排查表 |
| 冷名单 | 被系统静默屏蔽的域名列表 | 验证与观测节 |
| Draft | 本地/云端草稿 | 异常回退节 |
| Livestream | 直播功能 | FAQ 节 |
风险与边界
- 不可用情形:付费 Stars、NFT 拍卖、实时位置、语音聊天、直播邀请。
- 副作用:满 300 后无法追加;域名被标记 phishing 后同域排程全部失败。
- 替代方案:超量任务使用机器人拆分;实时数据用 webhook 回调;审批流借助第三方 CMS。
未来趋势与版本预期
官方 GitHub 议题透露,10.14 可能开放「排程 API」给频道管理员,意味着今后可通过 Bot API native endpoint 直接增删队列,而不再依赖客户端模拟。若成真,第三方模板化工具与官方调度器将合二为一,速率上限也有望从 300 提升到 1000。不过,Stars 支付消息仍被排除在外,合规审核只会更严。
在此之前,建议你先用原生功能跑通日常节奏,把机器人降级为“回调监控”角色;等 API 正式上线后,再评估是否迁移,以免来回折腾。