Telegram 机器人可以回答问题、处理命令,还能将聊天连接到其他服务。创建机器人要从 BotFather 开始;要让它能够回复消息,则需要设置无代码工作流,或编写一个处理消息的程序。
本指南将介绍如何在 2026 年创建 Telegram 机器人:注册账号、获取令牌、用无代码工具或 Python 设置回复,并解决常见的配置问题。我们先从 BotFather 开始,再分别介绍如何用两种方式创建一个可正常运行的机器人。
快速概览
通过官方 @BotFather 账号注册机器人,并妥善保管访问令牌。
无代码工作流适合处理简单回复;Python 则能让你灵活定制逻辑。
BotFather 负责创建账号;要让机器人回复消息,还需要运行工作流或程序。
先测试 /start、/help,并在私聊中发送一条文本消息,再部署机器人。
什么是 Telegram 机器人?
Telegram 机器人是一种应用,用户通过专门用于自动化的 Telegram 账号与它互动。它可以回答问题、处理命令,或将对话连接到其他服务,详情请见 Telegram 机器人概览。
从一项任务开始。帮助机器人可以显示 /start 和 /help 的使用说明。回声机器人则会原样复述消息:发送 你好,收到 你好。先做到这一步,就足以确认连接正常,之后再添加更多逻辑。
机器人并不等于 AI 聊天机器人。固定回复只需要一条规则;要生成 AI 回复,则需要另外接入模型。Mini App 是在 Telegram 内打开的网页界面,和本文要创建的文本机器人属于不同的开发任务。
机器人也是 Telegram 广告生态的一部分:像 AdsGram 这样的 Telegram 广告平台 会在频道、机器人和 Mini Apps 中投放广告活动。
如何创建 Telegram 机器人
先用 BotFather 创建账号,再选择无代码工作流或 Python 来实现机器人的功能。无论采用哪种方式,都要先通过 BotFather 注册;它本身并不是实现对话逻辑的第三种方法。
方式 | 需要配置的内容 | 适合的起点 | 需要维护的内容 |
|---|---|---|---|
BotFather | 账号、个人资料和访问令牌 | 注册必备 | 所有权和账号设置 |
无代码 | 触发条件、判断条件和回复 | 简短、流程固定的对话 | 工作流、凭据和服务可用性 |
Python | 处理器和应用逻辑 | 自定义规则或集成 | 代码、依赖项和运行环境 |
选择 Telegram 机器人构建工具前,先画出一段对话流程:收到消息 → 判断条件 → 回复。确认工具支持所需的消息类型、分支逻辑和数据存储。如果对话中有很多例外情况,可以比较一下:用可视化编辑器和直接改代码,分别需要花多少工夫来调整规则。

通过 BotFather 注册
打开官方 @BotFather,发送 /newbot,然后按照提示设置显示名称和用户名。Telegram 在其首个机器人教程中介绍了这一注册流程。
- 使用上方的直达链接打开 BotFather,然后点击 开始。
- 发送
/newbot。 - 输入显示名称,例如
Workshop Help。 - 选择一个可用且以 bot 结尾的用户名,例如
workshop_help_demo_bot。 - 将访问令牌保存在密码管理器或密钥存储服务中。
- 打开机器人的链接,确认能否进入它的聊天窗口。
示例用户名仅供参考,无法保证可用。请使用拉丁字母、数字和下划线,并遵循 BotFather 显示的用户名要求。
访问令牌用于验证机器人身份,使其能够调用 Bot API。任何拿到令牌的人都可能控制机器人,因此不要在截图、代码仓库或共享文档中公开它。对于已有机器人,请在 BotFather 的管理选项中获取或更换令牌。如果令牌泄露,请立即撤销,并在关联的应用中换成新令牌。

常用 BotFather 命令
请参阅 Telegram 的 BotFather 指南,并查看 BotFather 当前菜单,了解可用设置。
命令 | 用途 |
|---|---|
| 注册机器人 |
| 管理机器人 |
| 修改显示名称 |
| 介绍机器人的功能 |
| 修改个人简介 |
| 设置头像 |
| 配置命令菜单 |
| 生成身份验证令牌 |
只添加应用实际支持的命令。菜单中出现某个命令,并不代表机器人已经能响应:/help仍需配置工作流规则或编写代码来处理。
无需编程,创建机器人
想要免写代码创建 Telegram 机器人,可以将令牌接入可视化工作流,并设置收到消息后如何回复。下面以 n8n 为例,介绍一个最简配置;n8n 是第三方自动化工具,并非 Telegram 的服务。
首先准备一个能够接收 Telegram 事件的 n8n 实例。自行托管还需要配置服务器,所以“无代码”不等于“无需设置”。也别默认托管套餐或持续运行是免费的。
- 新建一个工作流,并添加 Telegram Trigger。
- 创建 Telegram 凭据,并将 BotFather 提供的令牌填入 Access Token字段。具体请参阅凭据文档。
- 在Telegram Trigger中选择 Message 事件。
- 添加一个 Telegram 操作,将资源设为 Message,操作设为 Send Message。
- 设置 Chat ID为收到的消息对应的聊天 ID。如果此操作紧接着 Trigger 节点运行,请使用表达式
{{ $json.message.chat.id }}。 - 将 Text设为
Hello! Your bot is connected.。支持的操作详见 Telegram 操作文档。 - 启动测试监听,然后给机器人发送一条新的私信。
- 确认机器人能正常回复后,发布或启用工作流,即可持续使用。
这个配置会对每条消息都回复同一句话。接下来,添加条件分流:让 /start 触发欢迎消息,让 /help 触发使用说明。还要设置收到无法识别的输入时如何回复,别让用户一直等。
自行托管 n8n 时,Telegram 需要一个公开的 HTTPS webhook 地址。测试和生产环境可能会互相覆盖 webhook 注册信息,因此修改线上工作流时,请使用单独的测试机器人。另请参阅n8n 的 Telegram 故障排查指南。
用 Python 创建 Telegram 机器人
如果需要精确控制回复、验证和集成,可以使用 Python。下面的示例使用异步处理程序模式,实现 /start、/help 命令和文本复读,具体可参考 python-telegram-bot 示例.
准备项目
安装受支持的 Python 版本;本示例建议使用 Python 3.12 作为基础版本。 库文档 提供了兼容性详情。创建一个文件夹和虚拟环境,让项目依赖的程序包彼此隔离。
macOS 或 Linux:
mkdir telegram-bot-demo cd telegram-bot-demopython3 -m venv .venv source .venv/bin/activate python -m pip install "python-telegram-bot==22.8"
在 Windows PowerShell 中,使用 py -m venv .venv,
然后运行 .\.venv\Scripts\Activate.ps1,再执行相同的安装命令。
如果本地策略阻止了环境激活,可以直接运行 .\.venv\Scripts\python.exe,不必为了本教程更改系统策略。
添加机器人代码
将以下代码保存为 bot.py。Token 从环境变量中读取,不要将其作为字符串提交到源代码仓库。
import os
from telegram import Update
from telegram.ext (
Application, CommandHandler, ContextTypes,
MessageHandler, filters,
)
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message:
await update.message.reply_text("Hello! Send text or use /help.")
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message:
await update.message.reply_text("I repeat text messages. Try sending Hello.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message and update.message.text:
await update.message.reply_text(update.message.text)
def main():
token = os.environ.get("TELEGRAM_BOT_TOKEN")
if not token:
raise SystemExit("Set TELEGRAM_BOT_TOKEN before starting the bot.")
app = Application.builder().token(token).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("help", help_command))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling(allowed_updates=["message"])
if __name__ == "__main__":
main()
运行机器人
在同一个终端会话中设置密钥,然后运行 python bot.py。在 macOS 或 Linux 的 bash 或 zsh 中,这种方式可以避免直接在命令中输入 Token,导致它被保存到 shell 历史记录里:
read -s "TELEGRAM_BOT_TOKEN?Paste bot token: "zsh export TELEGRAM_BOT_TOKEN python bot.py
如果使用 bash,请将第一行替换为 read -s -p "Paste bot token: " TELEGRAM_BOT_TOKEN。
在 PowerShell 7 中,运行 $env:TELEGRAM_BOT_TOKEN = Read-Host -MaskInput 'Paste bot token',然后运行 python bot.py。
打开与机器人的私聊,测试 /start, /help 和一条简短的文本消息。按 Ctrl+C 停止进程。这段代码只是入门示例:它没有数据库、持久化的对话状态,也没有生产环境监控。
让机器人持续运行
将应用部署到一台始终在线的主机上,或者确保无代码工作流在托管环境中持续运行。关闭本地 Python 进程后,机器人就不会再回复消息。
长轮询是指程序向 Telegram 请求获取新事件;Webhook 则是 Telegram 将事件发送到你的服务器。Bot API 参考文档 介绍了这两种互斥的更新接收方式。Python 示例使用轮询,而 n8n 触发器使用 Webhook。
从实验项目转为多人共用的服务前:
- 将 Token 保存在主机的密钥设置中,并从 Git 中排除 .venv 和密钥文件。
- 每个 Bot Token 只运行一个轮询实例,避免其他应用同时接收同一个 Bot 的事件。
- 设置自动重启,并排查运行故障;不要记录密钥或不必要的消息内容。
- 将必需的对话状态保存在进程内存之外。
- 测试重启流程,确认 Bot 能恢复运行。
如果项目之后需要网页界面,请单独规划。AdsGram 关于Telegram Mini App 开发常见错误的指南也可以作为这一阶段的延伸阅读。
排查常见设置问题
如果 Bot 没有回复,先检查应用是否在运行,以及更新是否正常送达,再考虑修改 Bot 资料。按以下顺序排查,区分是账号问题、工作流问题还是代码问题。
- 注册后没有回复:连接并启动工作流或程序;BotFather 本身不会运行它。
- 缺少环境变量:在启动 Python 的同一个终端或托管服务中设置
TELEGRAM_BOT_TOKEN。 - 身份验证错误:检查 Token 中是否有空格、是否已过期,或是否误用了其他 Bot 的凭据。
- 轮询冲突:停止重复运行的进程。如果要从 Webhook 服务切换过来,请先使用
deleteWebhook主动移除 Webhook,再启动轮询;详见Telegram 更新常见问题。 - 私聊正常,群组不行:检查隐私模式,并测试发送一个提及 Bot 的命令,例如
/help@your_bot_username。 - 菜单命令没有反应:为该命令编写处理逻辑;在 BotFather 中添加命令,只会让它显示出来。
常见问题
无需注册托管服务账号,也可以先在本地开始。以下问题会介绍注册和持续运行 Bot 所需了解的事项。
可以免费创建 Telegram Bot 吗?
Telegram 的基础 Bot 平台可以免费使用,你也可以在自己的电脑上开发一个小型 Python Bot。托管服务、无代码平台或外部 API 可能会产生额外费用。初次尝试时,可以先在本地运行一个文字回复 Bot;在转为持续运行之前,再了解托管或服务的收费情况。
BotFather 安全可靠吗?
请通过 Telegram 官方文档找到 BotFather,或使用本指南中的 @BotFather 直达链接。BotFather 是 Telegram 的 Bot 管理工具。主要风险在于冒充官方的账号和泄露的访问 Token。请妥善保管 Token,只提供给你有意委托其运行 Bot 的应用或服务。
如何从 BotFather 获取 Telegram Bot Token?
向官方 BotFather 发送 /newbot,并按提示设置名称和用户名。之后,BotFather 会提供该 Bot 的 Token。如果要管理已有 Bot,请使用管理选项生成 Token。请妥善保存 Token;撤销或更换旧 Token 后,也要更新应用凭据。
创建 Telegram Bot 一定要用 Python 吗?
不需要。你可以通过可视化工作流实现基础回复,不用编写 Python;也可以使用其他编程语言调用 Bot API。根据所需功能和你能维护的方式来选择。简单的判断流程适合用可视化工具;如果需要更复杂的验证和集成,自己编写应用可能更合适。
为什么我关闭终端后 Bot 就停止运行了?
在这个示例中,终端负责运行接收消息并发送回复的进程。进程一旦结束,相关逻辑也会停止,但 Bot 账号仍然存在。若要持续运行,可以将程序部署到支持常驻运行并能自动重启的环境中;也可以让托管工作流持续运行,并在 Bot 无法回复时检查执行日志。





