Telegram不仅是全球最安全的即时通讯工具,更是一个强大的自动化平台。通过机器人(Bot),你可以轻松实现每日定时提醒,无论是个人待办、喝水打卡、会议通知还是群组公告,都能准确送达。本文将从零开始,为你详细介绍多种设置每日定时提醒的方案,包括编程方式和零代码方式,满足不同技术水平用户的需求。
一、准备工作:创建机器人与获取Token
无论采用哪种方案,你首先需要在Telegram上创建一个机器人并获得API Token。使用官方机器人@BotFather即可快速完成:
- 在Telegram中搜索并打开@BotFather,点击“开始”。
- 发送
/newbot命令,按照提示为你的机器人设置显示名称和用户名(用户名必须以bot结尾,例如MyReminderBot)。 - 创建成功后,BotFather会返回一串HTTP API Token,类似
123456789:ABCdefGhIJKlmNoPQRsTuvWxYZ。请务必保存该Token,用于后续调用机器人API。
同时,你还需要获取自己的Chat ID(聊天标识)。最简单的方法是:将你的机器人添加为一个联系人,然后发送任意消息给它,接着访问 https://api.telegram.org/bot<你的Token>/getUpdates,在返回的JSON中找到 chat 下的 id 字段,这就是你的聊天ID。
二、方案一:使用Python脚本+服务器部署(适合有编程基础)
如果你有一台长期在线的云服务器或树莓派,使用Python脚本是功能最强大的方法。下面以 python-telegram-bot 和 schedule 库为例。
步骤1:安装依赖
pip install python-telegram-bot schedule
步骤2:编写定时提醒脚本
import telegram
import schedule
import time
# 替换为你的Token和Chat ID
token = 'YOUR_BOT_TOKEN'
chat_id = 'YOUR_CHAT_ID'
bot = telegram.Bot(token=token)
def send_reminder():
message = '别忘了今天的重要事项!'
bot.send_message(chat_id=chat_id, text=message)
# 每天上午9点发送提醒
schedule.every().day.at("09:00").do(send_reminder)
while True:
schedule.run_pending()
time.sleep(1)
将上述代码保存为 reminder_bot.py,并将Token和Chat ID替换为实际值。
步骤3:运行脚本
在终端中执行 python reminder_bot.py 即可。为了让脚本在服务器重启后依然运行,建议使用 systemd 或 supervisor 进行守护进程管理。
进阶:每天发不同内容
你可以结合日期、天气或数据库内容,动态生成提醒消息。例如,使用 datetime 模块插入当天日期。
三、方案二:使用GitHub Actions免费实现定时提醒(零服务器)
如果你不想维护服务器,可以利用GitHub Actions的定时任务功能,免费且较为简单。
步骤1:创建GitHub仓库
在GitHub上新建一个私有仓库(例如 telegram-reminder),用于存放配置文件。
步骤2:配置仓库Secrets
在仓库的 Settings -> Secrets and variables -> Actions 中,添加两个密钥:TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID,值分别为你的Token和Chat ID。
步骤3:创建GitHub Actions工作流
在仓库根目录创建 .github/workflows/reminder.yml,内容示例如下:
name: Daily Reminder
on:
schedule:
- cron: '0 1 * * *' # 每天UTC时间1点(北京时间9点)
workflow_dispatch: # 允许手动触发
jobs:
reminder:
runs-on: ubuntu-latest
steps:
- name: Send reminder
run: |
curl -s -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendMessage" \
-d chat_id="${{ secrets.TELEGRAM_CHAT_ID }}" \
-d text="早上好!这是你的每日提醒。"
注意时区:GitHub Actions默认使用UTC时间,若需北京时间每天8点提醒,应设置为 '0 0 * * *'(转换:北京比UTC早8小时,所以UTC0点对应北京8点)。
四、方案三:使用现成机器人,零代码搞定
如果你完全不想写代码,Telegram上有不少现成的定时提醒机器人。例如 @ReminderBot、@TodoBot 等。以 @ReminderBot 为例,在聊天中输入:
/remind 我 每天 09:00 喝水
机器人就会在你指定时间发送提醒。这些机器人界面友好,功能丰富,但请记住:它们由第三方开发,使用前请谨慎评估隐私风险,不要将敏感信息发送给不信任的机器人。
五、注意事项与进阶技巧
- 时区问题:服务器时区可能与你所在时区不一致,务必根据实际情况调整时间。建议统一使用UTC,手动换算偏移。
- Token安全:切勿将Token提交到公开仓库或分享给他人。一旦泄露,可找BotFather重新生成Token。
- 多用户支持:如果你希望为多个用户发送提醒,可以设计命令让用户输入自己的Chat ID,并存储到数据库中(如SQLite)。
- 个性化内容:利用Python的
f-string可以轻松插入日期、天气API等动态数据,提升提醒的可用性。 - 失败重试:网络抖动可能导致消息发送失败,可在脚本中增加
try-except和重试逻辑。
总结
通过以上任一种方案,你都能在Telegram上实现每日定时提醒。从简单的第三方机器人到完全自托管的Python脚本,各有优劣。如果你追求稳定和私密,建议选择方案一或方案二;如果只是为了临时提醒,方案三即够用。希望本文能帮助你高效管理每日事务,再也不遗漏重要安排。