在Telegram群的日常运营中,定时推送消息(如每日新闻、课程提醒、活动通知)能大幅提升效率。很多人以为这需要复杂的编程知识,其实借助Telegram官方提供的Bot API,加上简单的脚本或现成的第三方工具,任何人都能轻松实现。本文将手把手教你几种定时发消息的方法,从零开始创建机器人,到用代码自动发送,全程基于官方渠道,安全可靠。
准备工作:创建Telegram机器人并获取Token
无论你选择哪种方法,首先需要拥有一个属于自己的机器人(Bot)。Telegram官方提供了BotFather来管理所有机器人,操作非常简单:
- 在Telegram搜索框中输入@BotFather,进入官方机器人管理页面。
- 发送
/newbot指令,按提示为你的机器人取一个显示名称(如MyScheduler)和用户名(必须以bot结尾,例如MyScheduler_bot)。 - 创建成功后,BotFather会返回一个Token(形如
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)。这个Token是机器人的唯一密码,请妥善保管,后续所有API调用都需要它。
方法一:使用Telegram Bot API + Python脚本实现定时发送
如果你懂一点Python,这是最灵活、最可控的方式。利用系统自带的schedule库或操作系统的定时任务(如cron),即可让机器人按预设时间发送消息。
1. 安装依赖并编写发送函数
import requests
import schedule
import time
def send_message(chat_id, text):
token = 'YOUR_BOT_TOKEN'
url = f'https://api.telegram.org/bot/sendMessage'
payload = {'chat_id': chat_id, 'text': text}
requests.post(url, data=payload)
此代码使用requests库调用Bot API的sendMessage接口。你需要将chat_id替换为接收消息的群组或频道的ID(可在群内添加机器人后发送消息,然后访问https://api.telegram.org/bot你的token/getUpdates查看)。
2. 设置定时任务
# 每天早上8点发送提醒
schedule.every().day.at("08:00").do(send_message, chat_id='@your_channel', text='早间新闻来了!')
# 每周一上午10点发送周报
schedule.every().monday.at("10:00").do(send_message, chat_id='-1001234567890', text='本周工作安排')
while True:
schedule.run_pending()
time.sleep(1)
运行此脚本后,它会持续运行并按设定时间触发发送。注意,服务器或电脑需要保持开机状态。你也可以将脚本部署到云服务器或使用后台进程管理。
方法二:使用Google Apps Script实现云端定时发送(免服务器)
如果你不想维护服务器,Google Apps Script提供了免费、简易的云端定时触发器,只需要一个Google账号即可。
- 访问
script.google.com,新建项目。 - 复制以下代码,替换Token和Chat ID:
function sendTelegramMessage() {
var token = 'YOUR_BOT_TOKEN';
var chatId = '@your_channel';
var text = '这是定时消息!';
var url = 'https://api.telegram.org/bot' + token + '/sendMessage';
UrlFetchApp.fetch(url, {
'method': 'post',
'payload': {'chat_id': chatId, 'text': text}
});
}
- 点击左侧时钟图标,添加触发器,选择时间驱动,设置每小时的特定分钟或每天的具体时间运行
sendTelegramMessage函数。
这种方法完全免费,且不占用本地资源,尤其适合个人小规模使用。
方法三:使用现成的第三方定时机器人(无需编程)
如果你完全不想写代码,可以去Telegram搜索一些成熟的定时机器人,例如@SchedulerBot、@CronBot或@AlertBot。这些机器人通常支持通过私聊或群聊命令来设置定时消息,例如发送/new并选择重复频率,即可将文本或图片定时推送到指定群组。需要注意的是,请务必选择口碑好、用户多的机器人,并避免将敏感信息发送给不可信的第三方服务。
重要提醒与最佳实践
- 时区问题:定时命令使用服务器本地时区,如果你使用国外云主机或API,需要注意时区偏移,建议在代码中统一使用UTC并转换成目标时区。
- 频率限制:Telegram机器人的发送频率通常有隐形限制,高频发送(如每几秒一条)可能被暂时封禁,建议合理设置发送间隔,对于群组通知,每日几次完全没问题。
- 安全与权限:不要将Token公开或提交到Git仓库。如果需要长期运行,建议使用环境变量保存Token,并定期更换。
- 测试优先:先向自己私聊或测试群发送,确认格式和内容无误后再部署到正式群组。
总结
通过本文介绍的几种方法,你可以轻松地让Telegram机器人按照预定的时间自动发送消息。无论是用Python脚本自建,还是借助Google Apps Script或第三方机器人,核心都是利用官方Bot API。定时消息不仅适用于群组管理,还能用于个人提醒、自动化工作流等场景。建议从简单方法开始尝试,逐步掌握更高级的控制方式,让Telegram真正成为你的效率利器。