很多时候,我们希望Telegram机器人能在特定时间自动推送消息,比如每日新闻、工作提醒、定时播报等。然而Telegram官方并没有直接提供“定时发送”按钮,但我们可以借助Bot API和外部脚本轻松实现。本文将从创建机器人开始,详细演示两种最常用的定时发送方案,让你从此告别手动逐条发送的烦恼。
一、准备工作:创建你的Telegram机器人
要在Telegram中使用机器人,首先得有一个属于自己的Bot。打开Telegram,搜索并进入@BotFather,发送 /newbot 指令,按提示填写机器人的显示名称和用户名(用户名必须以 bot 结尾)。创建成功后,你会收到一个API Token,形如 123456789:ABCdef...。这个Token是操作机器人的凭证,请务必妥善保管,不要泄露给任何人。
注意:如果你的Telegram无法访问,请先解决网络问题。本教程适用于已能正常使用Telegram的用户。
二、方案一:利用Google Apps Script实现定时发送(免费且无需服务器)
Google Apps Script是Google提供的一个基于JavaScript的脚本平台,可以为脚本设置定时触发器。用它来调用Telegram Bot API,无需购买VPS或保持电脑常开,非常适合轻量级定时任务。
1. 获取Chat ID
要让机器人把消息发给你或你的群组,需要知道对应的Chat ID。你可以在Telegram中给机器人随便发一条消息,然后访问以下URL(将 YOUR_TOKEN 换成你的Token):
https://api.telegram.org/botYOUR_TOKEN/getUpdates
在返回的JSON里找到 chat 对象中的 id 字段,那就是Chat ID。如果是群组,需要先把机器人拉进群,再在群里发消息才能看到ID。
2. 编写Apps Script代码
打开 Google Apps Script 新建项目,粘贴以下代码:
function sendMessage() {
var botToken = 'YOUR_TOKEN';
var chatId = 'CHAT_ID'; // 替换成你的chat id
var text = '这是定时发送的消息';
var url = 'https://api.telegram.org/bot' + botToken + '/sendMessage';
var payload = {
'chat_id': chatId,
'text': text
};
UrlFetchApp.fetch(url, {
'method': 'post',
'payload': payload
});
}
3. 设置定时触发器
在Apps Script编辑器中,点击左侧“触发器”图标,然后点击“添加触发器”。选择函数 sendMessage,事件源选择“时间驱动”,再选择触发频率(比如“天定时器”并设置具体时间)。保存后,机器人就会按计划自动发送消息。
优点:完全免费、云运行、无需维护服务器。缺点:依赖Google服务,在国内网络环境可能无法稳定访问。
三、方案二:使用Python脚本 + cron实现定时发送(灵活且可控)
如果你熟悉Python,或者希望更灵活地控制发送逻辑(如读取数据库、动态生成内容),可以自己写一个Python脚本,再通过系统cron(Linux/Mac)或“任务计划程序”(Windows)定时执行。
1. 安装依赖
在命令行执行:
pip install requests
2. 编写发送脚本
创建一个Python文件,例如 scheduled_send.py:
import time
import requests
def send_telegram_message(token, chat_id, text):
url = f"https://api.telegram.org/bot/sendMessage"
data = {"chat_id": chat_id, "text": text}
resp = requests.post(url, data=data)
return resp.json()
if __name__ == "__main__":
bot_token = "YOUR_TOKEN"
chat_id = "CHAT_ID"
message = "这是Python脚本发送的定时消息"
result = send_telegram_message(bot_token, chat_id, message)
print(result)
3. 配置cron定时任务
在终端输入 crontab -e 打开任务列表,添加一行,例如每天上午9点发送:
0 9 * * * /usr/bin/python3 /path/to/scheduled_send.py
保存后,cron会按计划调用脚本,机器人就会在每天9点发送消息。Windows用户可以使用“任务计划程序”设置定时触发,或者用Python的schedule库在脚本内实现循环。更多高级用法(如发送图片、Markdown格式)可参考Telegram Bot API文档。
四、注意事项与常见问题
- 隐私与安全:定期更换Bot Token,不要在聊天、代码或公开场合泄露Token。
- 时区问题:cron和Apps Script定时器使用的是服务器时区,请根据实际需要调整时间。
- 频率限制:Telegram Bot API有频率限制,避免高频发送导致机器人被封禁。
- 无法收到消息:检查Chat ID是否正确,机器人是否被对方拉黑或屏蔽。
- 国内网络:Telegram部分区域无法直连,请确保运行环境能正常访问Telegram API。
五、总结
通过本文,你已经掌握了两种设置Telegram机器人定时发送消息的方法:Google Apps Script适合零基础快速实现,Python脚本则更适合复杂场景。选择适合自己的方案,让机器人真正成为你的私人自动化助手。如果你还想了解更多机器人玩法,比如关键词回复、消息转发、群管理技巧,欢迎在本站继续浏览相关教程。