Telegram机器人定时发消息教程2026 | Python+API实现自动推送
运营Telegram群组或频道时,手动定时发送通知、资讯、福利等内容耗时费力。2026年Telegram Bot API优化了定时任务支持,结合Python的schedule库,零基础也能编写自动发消息的机器人,实现每天固定时间推送内容。本文将详细讲解机器人创建、API申请、代码编写、部署调试的全流程,附完整代码示例和常见报错解决办法。

一、前期准备工作
1.1 申请Telegram Bot API密钥
所有Telegram机器人都需通过官方BotFather创建并获取API token,步骤如下:
- 打开Telegram,搜索用户「@BotFather」并进入聊天界面;
- 发送指令「/newbot」,按提示设置机器人名称(如「TimingPushBot」)和用户名(需以bot结尾,如「TimingPushBot_2026」);
- 创建成功后,BotFather会发送API token(格式:123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11),保存该token(后续代码需用到);
- (可选)发送指令「/setprivacy」,设置机器人权限为「Disabled」,使其能读取群组消息。
1.2 配置Python开发环境
本教程使用Python 3.10+版本,需先安装Python和相关依赖库:
- 下载Python:访问官网 python.org 安装对应系统版本;
- 安装依赖库:打开命令提示符(CMD)或终端,输入以下命令:
pip install python-telegram-bot schedule

二、编写定时发消息Python代码
2.1 核心代码示例(基础版)
以下代码实现每天早上9点向指定群组/频道发送消息,可直接复制修改使用:
import telegram
import schedule
import time
# 替换为你的Bot API token
BOT_TOKEN = "你的API_TOKEN"
# 替换为目标群组/频道ID(需以-100开头,如-1001234567890)
CHAT_ID = "你的CHAT_ID"
# 初始化机器人
bot = telegram.Bot(token=BOT_TOKEN)
# 定义发消息函数
def send_message():
try:
bot.send_message(
chat_id=CHAT_ID,
text="早上好!这是定时推送的每日资讯,记得查收哦~"
)
print("消息发送成功!")
except Exception as e:
print(f"消息发送失败:{e}")
# 设置定时任务(每天9点执行)
schedule.every().day.at("09:00").do(send_message)
# 启动定时任务
while True:
schedule.run_pending()
time.sleep(1)
2.2 代码关键参数说明
- BOT_TOKEN:替换为BotFather发送的API token,不可泄露;
- CHAT_ID:目标群组/频道的ID,获取方法:邀请机器人加入群组,发送消息后访问 https://api.telegram.org/bot你的API_TOKEN/getUpdates 查看chat_id;
- 定时规则修改:
- 每小时发送:schedule.every().hour.do(send_message)
- 每周一发送:schedule.every().monday.at(“14:00”).do(send_message)
三、运行代码与调试
3.1 本地运行代码
- 将代码保存为「telegram_timing_bot.py」;
- 在代码所在文件夹打开CMD/终端,输入命令:
python telegram_timing_bot.py
- 若终端显示「消息发送成功」,说明机器人运行正常。

3.2 常见报错及解决办法
报错1:Invalid token
原因:API token输入错误或机器人被BotFather删除;解决方案:重新在BotFather中获取token,检查代码中是否有空格或拼写错误。
报错2:Chat not found
原因:未邀请机器人加入目标群组/频道,或chat_id错误;解决方案:邀请机器人成为群组管理员,重新获取正确的chat_id。
报错3:库未安装
原因:python-telegram-bot或schedule库未安装成功;解决方案:使用pip命令重新安装,建议添加镜像源加速下载。
四、进阶玩法:实现多任务定时推送
若需同时向多个群组发送不同内容,可修改代码添加多个任务:
# 定义多个发消息函数
def send_group1():
bot.send_message(chat_id="-100123456", text="群组1的每日通知")
def send_group2():
bot.send_message(chat_id="-100789012", text="群组2的专属福利")
# 设置不同定时任务
schedule.every().day.at("09:00").do(send_group1)
schedule.every().day.at("18:00").do(send_group2)
五、长期运行方案:部署到云端服务器
本地运行代码需保持电脑开机,建议部署到云端服务器(如阿里云、腾讯云):
- 将代码上传至服务器,安装Python环境和依赖库;
- 使用nohup命令后台运行:
nohup python telegram_timing_bot.py &
- 如需管理机器人,可参考 Telegram群组管理技巧:创建、管理与优化群组的完整指南 中的机器人权限设置方法。
总结:Telegram机器人定时发消息功能通过Python+API即可实现,零基础用户也能快速上手。核心是获取正确的API token和chat_id,编写简单的定时任务代码。部署到云端服务器后,机器人可7×24小时稳定运行,大幅节省人工运营成本。