Telegram机器人(Bot)是一种由用户自定义控制的自动化账号,可以执行消息回复、任务提醒、文件处理等操作。它们不仅为个人生活带来便利,更是许多企业和开发者构建服务的基石。本教程将带你从零开始,创建一个属于自己的Telegram机器人,并让它能够自动回复消息。
一、准备工作:你需要什么
在开始之前,请确保你具备以下条件:
- 一个Telegram账号(注册时绑定的手机号需可用)
- 基础的编程知识,至少了解一种编程语言(本教程以Python为例)
- 安装了Python 3.7或更高版本的电脑,并配置好环境变量
- 能够访问Telegram服务器(网络环境需正常)
如果你还不熟悉Telegram的基本操作,建议先阅读本站的《Telegram新用户设置完整指南》快速上手。
二、创建机器人:使用BotFather获取Token
Telegram官方提供了一个专门用于创建和管理机器人的机器人——BotFather。它是所有机器人的“母体”,通过它我们可以获得属于自己机器人的API Token。
- 打开Telegram,搜索@BotFather,并点击进入。
- 在聊天窗口发送指令
/newbot。 - 按照提示,为你的机器人设置一个显示名称(例如“我的测试机器人”)。
- 接着设置机器人的用户名,必须以
bot结尾,例如MyTestRobot_bot。用户名需要唯一。 - 创建成功后,BotFather会返回一条包含Token的消息,格式类似于
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11。
请务必妥善保管Token,任何持有Token的人都能完全控制你的机器人。切勿将其分享或提交到公开代码仓库。
三、编写第一个机器人程序
这里我们使用Python社区最流行的库——python-telegram-bot。它以简单易用著称,支持异步和同步两种模式。如果你的电脑上尚未安装,请先执行以下命令安装:
pip install python-telegram-bot==20.0
新建一个文件 my_bot.py,输入以下代码:
from telegram.ext import Application, CommandHandler, MessageHandler, filters
# 你的Token(用BotFather获取的)
TOKEN = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
# 处理/start命令
async def start(update, context):
await update.message.reply_text("你好!我是你的机器人,欢迎使用。")
# 处理普通文本消息
async def echo(update, context):
user_text = update.message.text
await update.message.reply_text(f"你说了:")
def main():
# 创建应用
application = Application.builder().token(TOKEN).build()
# 注册命令处理器
application.add_handler(CommandHandler("start", start))
# 注册普通消息处理器(排除命令)
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
# 启动机器人,开始轮询更新
application.run_polling()
if __name__ == "__main__":
main()
这段代码实现了两个功能:当用户发送/start时,机器人回复欢迎语;当用户发送任意文本消息时,机器人原样返回。代码中的注释已详细说明每步的作用。
四、运行与测试
在终端中运行你的脚本:
python my_bot.py
看到类似“Application started”的日志后,表示机器人已启动。现在你可以回到Telegram,找到刚才创建的机器人的用户名(例如@MyTestRobot_bot),点开聊天窗口,点击开始或发送/start,看看机器人是否回复了欢迎语。再随便发一句话,看看它是否原样回复。
如果一切正常,恭喜你,你的第一个Telegram机器人已经能够工作!
五、部署到服务器(可选)
本地运行的机器人一旦电脑关机或断电就会停止,因此为了实现7×24小时稳定运行,我们需要将其部署到具有公网IP的云服务器上。以下是简要步骤:
- 购买一台云服务器(推荐使用Ubuntu系统),并配置好安全组规则,允许80/443端口(如果使用Webhook)。
- 在服务器上安装Python环境和依赖:
pip install python-telegram-bot==20.0。 - 使用
scp或Git将my_bot.py上传到服务器,并在后台运行,例如使用nohup或systemd服务。 - 如果使用Webhook模式,需要配置域名和SSL证书,这里推荐使用
python-telegram-bot的start_webhook方法,并借助Nginx反向代理。
部署时请注意服务器的时区、环境变量等细节,确保机器人能稳定连接Telegram服务器。
六、安全建议
机器人开发中,安全是不可忽略的一环。以下是一些必须牢记的要点:
- 保护Token:将Token保存在环境变量或配置文件里,不要硬编码在源码中。
- 限制访问:如果机器人只供私人使用,可以在代码中校验发送者的用户ID,只允许白名单内的用户使用。
- 使用Webhook时务必使用HTTPS:Telegram只接受官方签名的SSL证书,切勿自签名。
- 定期审查日志和权限:不要给你的机器人授予管理员权限,除非绝对必要。
- 避免滥用:添加频率限制、请求限速,防止被恶意刷量(可参考本站《Telegram机器人防滥用限制设置实操手册》)。
总结
本教程从零开始创建了一个Telegram机器人,并部署到了本地环境。你已经学会了使用BotFather获取Token、编写Python脚本、处理命令和普通消息,后面还了解了部署到服务器的方法。这只是一个开始,Telegram Bot API提供了非常丰富的能力,比如发送图片、视频、文件,内联键盘、定时任务等。你可以继续学习本站的其他教程,逐步打造功能强大的机器人。
如果你在开发过程中遇到问题,不妨查阅Telegram官方Bot文档,或在本站搜索相关关键词。祝你开发愉快!