引言
Telegram机器人已经成为自动化工具和社区管理的重要一环。无论是自动回复、群组管理,还是对接第三方服务,机器人都能大幅提升效率。python-telegram-bot 是一个成熟、易用的Python框架,封装了Telegram Bot API,让开发者能够快速构建功能丰富的机器人。本教程将带你从零开始,完成第一个可用机器人。
环境准备
开始之前,请确保你的电脑已安装Python 3.7+。推荐使用虚拟环境隔离依赖。安装框架非常简单:
pip install python-telegram-bot建议安装最新正式版本(v20+),该版本基于异步机制,性能更好。
获取机器人Token
在Telegram客户端中搜索 @BotFather,发送 /newbot 命令,按提示填写机器人显示名称和用户名(必须以 bot 结尾)。完成后,BotFather会返回一个API Token,这是机器人的唯一凭证,务必妥善保管。
编写第一个机器人
创建一个Python文件(例如 bot.py),输入以下代码:
from telegram.ext import Application, CommandHandler, ContextTypes
from telegram import Update
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text('你好!我是机器人。')
def main():
app = Application.builder().token('YOUR_TOKEN_HERE').build()
app.add_handler(CommandHandler('start', start))
app.run_polling()
if __name__ == '__main__':
main()将 YOUR_TOKEN_HERE 替换为你的Token,运行脚本,然后在Telegram中给你的机器人发送 /start,即可收到回复。
处理更多消息
除了命令,机器人还可以处理普通文本、图片等。使用 MessageHandler 配合过滤器:
from telegram.ext import MessageHandler, filters
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(update.message.text)
def main():
app = Application.builder().token('YOUR_TOKEN_HERE').build()
app.add_handler(CommandHandler('start', start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling()这样机器人就会原样回复你发送的文本消息。
自定义命令与回复样式
你还可以使用 sendMessage 发送Markdown或HTML格式消息,让回复更精致。例如:
await update.message.reply_text(
'**加粗** 和 *斜体*',
parse_mode='Markdown'
)同时,通过BotFather的 /setcommands 可以定义机器人菜单中显示的命令列表。
部署与优化建议
- 开发阶段使用
run_polling()即可;生产环境推荐采用Webhook方式,更稳定高效。 - 启用日志记录,方便排查问题。
- 将Token保存在环境变量或配置文件中,切勿硬编码。
- 如果需要长期运行,可部署在云服务器,并使用systemd或Docker守护进程。
总结
通过上述步骤,你已经成功创建了一个能响应用户指令的Telegram机器人。python-telegram-bot框架还支持发送图片、键盘按钮、群组管理、定时任务等高级功能。建议阅读官方文档,并动手扩展自己的机器人。掌握基础后,你会发现机器人开发并无门槛。