引言:为什么Telegram机器人值得学习?
Telegram机器人(Bot)是运行在Telegram平台上的自动化程序,可以帮助你完成信息推送、客服、游戏、提醒等数百种任务。本教程将手把手带你从零制作一个能跑的机器人,无需深厚编程基础。
准备工作:账号与BotFather
首先你需要一个Telegram账号,并搜索官方机器人BotFather(@BotFather)。BotFather是Telegram官方提供的“机器人父亲”,负责创建和管理所有机器人。
第一步:通过BotFather创建你的第一个机器人
- 打开与BotFather的聊天,发送
/newbot。 - 按提示输入你的机器人显示名称(如“我的助手”)。
- 再输入机器人的用户名,必须以
bot结尾(如my_helper_bot)。 - 创建成功后会返回一条API Token,形如
123456789:ABCdef12345...,这就是你机器人的“钥匙”,请妥善保存。
第二步:理解机器人的工作原理与核心API
机器人通过HTTP请求与Telegram服务器通信。它有两种接收更新(Update)的方式:长轮询(Long Polling)和Webhook。对初学者,建议先使用长轮询,代码简单且无需公网IP。
第三步:编写第一个机器人脚本(Python示例)
我们使用Python的python-telegram-bot库(v21+)。本地安装依赖:
pip install python-telegram-bot
创建一个my_bot.py文件,输入以下内容:
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text('你好!我是机器人,请发送任意消息给我。')
app = ApplicationBuilder().token("YOUR_TOKEN").build()
app.add_handler(CommandHandler("start", start))
print("机器人运行中,按Ctrl+C停止")
app.run_polling()
将YOUR_TOKEN替换为你创建的Token,运行python my_bot.py。然后在Telegram中搜索你的机器人用户名,打开对话点击“开始”或发送/start,就会收到回复。
第四步:设置机器人命令与自定义键盘
使用BotFather的/setcommands可以设置快捷命令。你也可以在代码中动态设置。下面添加一个自定义键盘:
from telegram import ReplyKeyboardMarkup
from telegram.ext import MessageHandler, filters
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
# 自定义两个按钮
keyboard = [['按钮1', '按钮2']]
reply_markup = ReplyKeyboardMarkup(keyboard, resize_keyboard=True)
await update.message.reply_text('请选择:', reply_markup=reply_markup)
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
第五步:实现更多实用功能(定时推送与自动回复)
你可以使用JobQueue实现定时任务,也可以处理图片、视频等。下面实现一个每日定时提醒:
async def daily_job(context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id="你的用户ID", text="该起床啦!")
job_queue = app.job_queue
job_queue.run_daily(daily_job, time=datetime.time(hour=8, minute=0))
第六步:部署与托管(本地运行 vs 云服务器)
本地运行适合调试。要让机器人7×24小时在线,建议部署到云服务器。你可以使用Heroku、AWS、Google Cloud或国内的轻量应用服务器。如果使用Webhook,还需要配置HTTPS域名。
安全与隐私建议
- 不要把Bot Token提交到公开仓库或分享给他人。
- 使用Webhook时务必校验IP,避免被恶意请求。
- 机器人收集用户数据时需遵守隐私政策。
总结
通过本文,你已经掌握了Telegram机器人的全流程:从BotFather创建、Python编程、命令与键盘设计、到部署和安全规范。下一步,你可以根据需求开发更复杂的机器人,如翻译助手、文件管理、群管理等。动手实践才是最快的进步!