Telegram Bot 入门教程(从零到部署)

Written by

in

Telegram Bot 入门教程(从零到部署):新手也能一次跑通的完整流程

一、Telegram Bot 到底是什么

Telegram Bot 是运行在 Telegram 生态里的自动化账号。它不需要手机号登录,也不占用通讯录,用户通过 @username 找到它,发消息、点按钮、拉进群,机器人依靠官方 Bot API 接收更新并给出回应。相比自己写客户端,Bot API 只要一个 HTTPS 接口加一串 Token 就能开工,这也是它被很多人当作「第一个上线项目」的原因。

常见用途包括:频道内容自动推送、群组入群验证与关键词过滤、客服问答、订阅提醒、文件与贴纸包分发。做频道运营的读者,可以配合Telegram 频道涨粉与内容排期指南一起看——机器人通常承担推送与统计那一环。

二、用 BotFather 建号并拿到 Token

在 Telegram 搜索 @BotFather(认准官方认证标识),发送 /newbot,按提示填两个名字:显示名可以用中文,用户名必须以 bot 结尾且全局唯一。创建成功后,BotFather 会返回一串形如 123456789:AAxxxx 的 Token。

这串字符等同密码,一旦泄露就意味着别人能完整接管你的机器人。建议立刻在 /mybots 里设置描述、头像与命令列表,并把 Token 存进环境变量而不是写死在代码里。顺手用 /setcommands 配好命令菜单,它会直接出现在用户输入框旁边,是性价比极高的体验优化。

三、搭建本地开发环境

Python 3.10 以上即可,建议用虚拟环境隔离依赖,再安装 python-telegram-bot(或更轻的 aiogram)。命令行里确认版本无误后,准备一个 .env 存放 Token。如果你更熟 JavaScript,telegraf 是同类选择,整体逻辑完全一致。

四、写下第一个「回声」机器人

最小可用版本只需要三件事:读取 Token、注册消息处理器、启动长轮询。核心逻辑就是收到 update 后判断文本是否以 /start 开头,回一条欢迎文案;其余内容原样返回(echo)。跑通后控制台会持续打印轮询日志,你在手机上发一句「你好」,机器人立刻回应——这一步的成就感相当强,也是后续所有功能的骨架。

五、命令、按钮与群组场景

接下来加 inline keyboard:用回调数据区分按钮,收到 callback_query 后必须先调用 answerCallbackQuery 再修改消息内容,否则按钮会一直转圈,这是新手最常见的卡点之一。

群组场景要记得把机器人拉进群并设为管理员,同时关闭 BotFather 的隐私模式(/setprivacy → Disable),否则它只能看到以斜杠开头的命令。频道则适合用 sendMessage 配合频道 ID 做定时推送。

六、从本地上线:长轮询还是 Webhook

本地跑着的脚本不能长期在线。上线有两条路:一是继续长轮询,用 systemd 或 Docker 守护在 VPS 上,简单可靠、无需域名;二是 Webhook,需要一个 HTTPS 域名,让 Telegram 主动把更新推给你的接口,延迟更低也更省资源。设置 Webhook 只是一次 API 调用,指定 url 与 secret_token 即可,之后 Telegram 会带签名请求你的服务。部署完务必加上日志与异常重试,Bot 静默掉线是最常见的线上事故。想深挖运维细节,可以参考Telegram Bot 部署与 Webhook 运维笔记。

七、新手最常踩的坑与安全提醒

  • Token 硬编码后被提交到公开仓库;
  • Webhook 没有配置有效证书,导致请求全部失败;
  • 群组隐私模式未关闭,收不到普通消息;
  • 请求频率过高触发 429 限流,需要退避重试。

此外请遵守平台服务条款:不做群发骚扰、不抓取用户数据、涉及收款走官方 Payments。想做自动化分发的话,可以接着读Telegram 频道自动化运营实践。

八、常见问题(FAQ)

Q1:一定要买服务器才能玩 Bot 吗?

A:开发调试阶段不需要,本地长轮询就能跑通全部逻辑;只有需要 7×24 在线的正式服务,才建议上一台低配 VPS。

Q2:机器人能主动给用户发消息吗?

A:只能给主动和它对话过、且未屏蔽的用户发送,且不能用于群发骚扰,否则会被限制甚至封禁。

Q3:Token 不小心泄露了怎么办?

A:立即在 BotFather 里执行 /revoke 重置,替换服务器上的环境变量并重启,同时检查日志有无异常调用。

Q4:Bot API 免费吗?有什么限制?

A:Bot API 本身完全免费,主要限制是单机器人每秒的请求数以及上传文件的体积上限。

Q5:Python 和 Node.js 该选哪个?

A:两者都能满足需求。Python 文档与示例更多,适合入门;已有 JS 技术栈的项目用 Node 更顺手。

本文最后更新:2025 年 6 月

免责声明:本文仅用于技术学习与交流,示例中的 Token、域名与接口请勿直接用于生产环境;使用 Telegram Bot 时请遵守平台服务条款及所在地法律法规,因违规使用产生的后果由使用者自行承担。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *