为什么需要定时发送消息?
运营者常遇到这样的场景:频道需要每天固定时间推送资讯,但无法守在电脑前;社群需要定时发布活动提醒,却不想手动复制粘贴。Telegram 本身没有内置的定时发送按钮,但通过其开放的 Bot API 以及丰富的第三方机器人生态,完全可以实现消息调度。本文从实操角度,拆解两种主流方案——使用现成机器人与自建 Bot 脚本,并给出适用边界与避坑指南。
功能定位与边界
官方没有,但开放接口支持
截至当前的最新版本,Telegram 官方客户端(Android/iOS/桌面)均未提供“定时发送”按钮。但 Telegram 的 Bot API 允许开发者通过 HTTP 请求发送消息,配合调度系统即可实现定时触发。注意,这与“草稿”“提醒”不同:定时发送是远期、自动化的推送,而草稿仅本地保存,提醒(如 /remind 命令)需依赖用户主动点击。
核心能力对比
| 方案 | 适合场景 | 实时性 | 成本 |
|---|---|---|---|
| 第三方定时机器人 | 个人/小群组定时提醒 | 分钟级延迟 | 免费 / 有限额 |
| 自建 Bot + 脚本 | 频道/企业级自动化推送 | 秒级 | 服务器费用 |
方案一:使用现成定时机器人
找到合适的机器人
在 Telegram 搜索栏中输入“timer”或“scheduler”,会出现多个备选。以 @ScheduleBot(示例名称,实际操作请以搜索结果为准)为例,它通常支持设置单次或循环消息。步骤:
- 在聊天界面搜索 @ScheduleBot,点击“开始”。
- 发送命令 /new 或 /schedule,机器人会引导你输入消息内容、时间、重复周期。
- 确认后,机器人会在指定时间向当前对话发送消息。
- 若需修改,发送 /list 查看任务列表,使用 /delete 删除。
注意:机器人是否能向频道或群组发送消息,取决于其权限(需被添加为管理员并赋予“发送消息”权限)。部分机器人对免费用户有每日发送条数上限,经验性观察约为 50~100 条/天,具体以机器人说明为准。
平台差异
机器人操作在所有平台(Android/iOS/桌面)完全一致,因为 Robot 交互基于文本命令。但桌面端可以更方便地复制粘贴长文本,移动端建议提前编辑好消息再粘贴。
方案二:自建 Bot 实现定时发送
创建机器人并获取 Token
与 @BotFather 对话,发送 /newbot,按提示设置名称和用户名,成功后会收到一个 API Token(格式如 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)。这是调用 Bot API 的唯一凭证,务必保密。
编写定时发送脚本
以下是一个 Python 示例(假设已安装 python-telegram-bot 和 schedule 库)。不保证代码在所有环境下直接运行,仅作为演示逻辑。
import schedule
import time
from telegram import Bot
TOKEN = '你的BOT_TOKEN'
CHAT_ID = '目标聊天ID' # 频道、群组或用户ID
bot = Bot(token=TOKEN)
def send_msg():
bot.send_message(chat_id=CHAT_ID, text='这是定时推送的消息')
# 每天 08:00 发送
schedule.every().day.at('08:00').do(send_msg)
while True:
schedule.run_pending()
time.sleep(60)
运行脚本后,程序会持续后台运行,在指定时间调用 Bot API 发送消息。注意:CHAT_ID 需通过 @userinfobot 或在监听消息中获取。若目标为频道,需将 Bot 添加为管理员并赋予发送权限。
进阶:定时发送媒体文件
Bot API 支持 send_photo、send_document 等方法,只需在脚本中调用对应函数,并传入文件路径或 URL 即可。注意:文件大小限制为 50MB(媒体文件)或 2GB(文档)。
常见问题与故障排查
机器人没有反应
- 检查 Token 是否正确,是否在 @BotFather 中重置过。
- 确认 Bot 已被添加为目标聊天(群组或频道)的管理员。
- 查看脚本运行日志,确认没有网络错误或 API 限流(429 错误)。
时间不准或跳过
若使用现成机器人,可能是机器人服务器时区设置问题,通常可在 /settings 中调整。自建脚本需确保服务器时间正确(使用 NTP 同步),并注意夏令时。
消息被限制
Telegram 对 Bot 有频率限制:每个聊天室每秒最多 1 条消息(群组内多个 Bot 独立计算)。若需高频发送,建议使用 queued 方法或手动添加延迟。
适用场景与不适用场景
适合这样做
- 频道每日定时更新(如新闻摘要、课程推送)。
- 社群活动提醒(如每周五晚 20:00 线上会议)。
- 个人待办提醒(如每日喝水、吃药)。
不适合这样做
- 需要即时交互的紧急通知(定时发送有延迟)。
- 发送内容高度个性化(如每个用户收到不同消息)——需配合数据库,复杂度上升。
- 对消息格式有严格要求的场景(如内嵌按钮、行内模式),需在代码中构造
InlineKeyboardMarkup。
FAQ(常见问题)
Telegram 官方客户端会有定时发送功能吗?
第三方定时机器人安全吗?
定时发送消息可以带图片或文件吗?
send_photo、send_document 等方法实现;部分第三方机器人也支持,具体看命令帮助。总结与下一步行动
Telegram 定时发送消息的核心在于“Bot 接口 + 调度系统”。新手建议从现成机器人入手,快速验证需求;进阶用户可自建脚本,获得完全控制权。无论哪种方式,务必注意权限最小化、频率限制和 Token 安全。准备好了吗?现在打开 Telegram 搜索一个定时机器人试试吧。
