Telegram机器人快速入门:python-telegram-bot框架实战教程

本文手把手教你使用python-telegram-bot框架开发第一个Telegram机器人,涵盖环境搭建、Token获取、命令处理等核心内容,帮助初学者快速上手机器人开发。

阅读提示涉及账号和安全设置时,请边阅读边核对当前设备界面。

引言

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框架还支持发送图片、键盘按钮、群组管理、定时任务等高级功能。建议阅读官方文档,并动手扩展自己的机器人。掌握基础后,你会发现机器人开发并无门槛。

FAQ

下载与安装

常见问题

python-telegram-bot需要Python哪个版本?

v20.0以上版本要求Python 3.7及以上,推荐使用最新Python 3.10+。

如何让机器人处理照片或语音?

使用MessageHandler配合filters.PHOTO或filters.VOICE,然后在回调函数中通过update.message.photo获取图片。

机器人Token泄露了怎么办?

立即到BotFather使用/revoke命令撤销原Token,并重新生成。切勿将Token提交到公共代码仓库。