Telegram机器人教程:从零开始创建你的第一个Bot

本文是一篇面向初学者的Telegram机器人开发教程,从使用BotFather获取API Token开始,到用Python编写简单的回应程序,再到部署到服务器,手把手带你创建并运行第一个Telegram机器人,同时提供安全建议和常见问题解答。

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

Telegram机器人(Bot)是一种由用户自定义控制的自动化账号,可以执行消息回复、任务提醒、文件处理等操作。它们不仅为个人生活带来便利,更是许多企业和开发者构建服务的基石。本教程将带你从零开始,创建一个属于自己的Telegram机器人,并让它能够自动回复消息。

一、准备工作:你需要什么

在开始之前,请确保你具备以下条件:

  • 一个Telegram账号(注册时绑定的手机号需可用)
  • 基础的编程知识,至少了解一种编程语言(本教程以Python为例)
  • 安装了Python 3.7或更高版本的电脑,并配置好环境变量
  • 能够访问Telegram服务器(网络环境需正常)

如果你还不熟悉Telegram的基本操作,建议先阅读本站的《Telegram新用户设置完整指南》快速上手。

二、创建机器人:使用BotFather获取Token

Telegram官方提供了一个专门用于创建和管理机器人的机器人——BotFather。它是所有机器人的“母体”,通过它我们可以获得属于自己机器人的API Token。

  1. 打开Telegram,搜索@BotFather,并点击进入。
  2. 在聊天窗口发送指令 /newbot
  3. 按照提示,为你的机器人设置一个显示名称(例如“我的测试机器人”)。
  4. 接着设置机器人的用户名,必须以bot结尾,例如MyTestRobot_bot。用户名需要唯一。
  5. 创建成功后,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的云服务器上。以下是简要步骤:

  1. 购买一台云服务器(推荐使用Ubuntu系统),并配置好安全组规则,允许80/443端口(如果使用Webhook)。
  2. 在服务器上安装Python环境和依赖:pip install python-telegram-bot==20.0
  3. 使用scp或Git将my_bot.py上传到服务器,并在后台运行,例如使用nohupsystemd服务。
  4. 如果使用Webhook模式,需要配置域名和SSL证书,这里推荐使用python-telegram-botstart_webhook方法,并借助Nginx反向代理。

部署时请注意服务器的时区、环境变量等细节,确保机器人能稳定连接Telegram服务器。

六、安全建议

机器人开发中,安全是不可忽略的一环。以下是一些必须牢记的要点:

  • 保护Token:将Token保存在环境变量或配置文件里,不要硬编码在源码中。
  • 限制访问:如果机器人只供私人使用,可以在代码中校验发送者的用户ID,只允许白名单内的用户使用。
  • 使用Webhook时务必使用HTTPS:Telegram只接受官方签名的SSL证书,切勿自签名。
  • 定期审查日志和权限:不要给你的机器人授予管理员权限,除非绝对必要。
  • 避免滥用:添加频率限制、请求限速,防止被恶意刷量(可参考本站《Telegram机器人防滥用限制设置实操手册》)。

总结

本教程从零开始创建了一个Telegram机器人,并部署到了本地环境。你已经学会了使用BotFather获取Token、编写Python脚本、处理命令和普通消息,后面还了解了部署到服务器的方法。这只是一个开始,Telegram Bot API提供了非常丰富的能力,比如发送图片、视频、文件,内联键盘、定时任务等。你可以继续学习本站的其他教程,逐步打造功能强大的机器人。

如果你在开发过程中遇到问题,不妨查阅Telegram官方Bot文档,或在本站搜索相关关键词。祝你开发愉快!

FAQ

下载与安装

常见问题

如何获取Telegram机器人的API Token?

打开Telegram,搜索@BotFather,发送/newbot指令并按照提示设置机器人的名称和用户名。创建成功后,BotFather会返回一个API Token,格式类似123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11,请妥善保存。

机器人不回复消息怎么办?

首先检查代码是否正常运行,终端是否出现报错。其次确认Token是否有效,是否复制了空格。另外,如果使用了Webhook,需要确保网络能正常访问Telegram服务器。最常见的原因是网络连接问题,可以尝试使用轮询模式替代。

如何将机器人部署到云服务器上?

将代码上传到服务器,配置好Python环境并安装依赖。可以使用nohup或systemd使程序在后台常驻。如果使用Webhook,还需要配置域名和SSL证书,并在Telegram中通过setWebhook接口设置Webhook地址。