如何创建 Telegram 机器人
如何用 @BotFather 制作 Telegram 机器人:/newbot 命令、名称和以 bot 结尾的用户名、令牌及其保护、命令、按钮,以及在哪里运行机器人的代码。
创建 Telegram 机器人要在与官方机器人 @BotFather 的聊天里进行:给它发送 /newbot,为机器人起一个名称,并选择一个以 bot 结尾的用户名。BotFather 会回复一个令牌(token),你的程序用它来控制机器人。创建机器人不需要花钱:Telegram 不向用户或开发者收取机器人平台的费用。但 BotFather 只负责注册机器人。想让它回答任何人,你需要在自己的电脑或服务器上运行一个程序。
如何在 BotFather 里创建机器人
- 打开 @BotFather,点击“开始”(Start)。
- 发送命令
/newbot。 - 输入机器人的名称,也就是它的显示名称。
- 输入用户名,即机器人的地址,例如
@my_shop_bot。它必须是 5–32 个字符,只能包含拉丁字母、数字和下划线,并以bot结尾。 - BotFather 会把令牌发给你。机器人就创建好了。
名称以后可以用 /setname 修改,但根据 Telegram 的文档,用户名在创建之后无法更改,所以请慎重选择。
令牌:它是什么以及如何妥善保管
令牌看起来是由冒号分隔的数字和字母。谁拿到它,谁就完全控制了这个机器人,所以 Telegram 建议把它存放在安全的地方,只告诉确实需要直接访问的人。
- 绝不要把令牌放进公开的代码、GitHub 或聊天里。
- 如果泄露了,Telegram 的文档给出的办法是在 BotFather 里使用
/token命令生成新令牌。然后在你的程序用到它的所有地方更新。 - 令牌只用于机器人。
api_id和api_hash是另一种密钥,供以用户身份登录的程序使用:如何获取它们。
在 BotFather 里需要设置什么
/mybots 会打开一个交互式菜单,用来设置你的机器人;在 BotFather 小程序里也能做同样的事。机器人的外观还可以用单独的命令设置:
/setname:机器人的名称。/setdescription:机器人的描述,一段不超过 512 个字符的简短文字。/setabouttext:“关于”信息,更短的文字,不超过 120 个字符。/setuserpic:机器人的头像。/setcommands:命令列表;有人输入/时,Telegram 会提示这些命令。/setjoingroups:机器人是否可以被添加到群组。/setprivacy:机器人在群里能收到哪些消息。/deletebot:删除机器人并释放它的用户名。
让机器人做出回应
机器人是一个通过 Bot API 与 Telegram 通信的程序。每个请求都发往 https://api.telegram.org/bot<token>/METHOD。接收消息有两种方式,它们是互斥的:
- getUpdates(长轮询):你的程序向 Telegram 询问新消息。这是最容易上手的方式,不需要公网地址。
- Webhook:由 Telegram 把消息发送到你的服务器。需要 HTTPS,以及 443、80、88 或 8443 其中一个端口。
你可以用任何能发起 HTTP 请求的语言编写代码。常用的库有 Python 的 aiogram 和 python-telegram-bot,以及 JavaScript 的 grammY 和 Telegraf。官方教程演示了一个 Java 机器人:从 BotFather 到“Hello World”。你可以在自己的电脑开机时运行机器人,也可以放在 VPS 上让它全天候工作。
机器人里的按钮和命令
- 命令是机器人处理的、形如
/start的词;提示列表用/setcommands设置。 - 消息下面的内联按钮不会向聊天发送文字:它们会向机器人发送一次点击,或打开一个链接。
- 回复键盘会用现成的回答取代常规键盘。
- 小程序(Mini App)是在 Telegram 内部打开的完整界面。
更多内容见机器人功能概览。
机器人里的支付
机器人里的数字商品和服务用 Telegram Stars 支付:账单使用货币 XTR,不需要支付服务商。设置方法见在你的机器人里接收 Stars;机器人收到的 Stars 通过 Fragment 提现:如何从机器人提现 Stars。
需要让你的程序为它的用户购买 Stars 或 Premium 吗?Shiba Bank 机器人为此提供了 API:Telegram Stars API。
常见问题
不会编程怎么创建 Telegram 机器人?
通过 @BotFather 一分钟就能注册一个机器人,但要让它做事就需要代码。Telegram 自己也指出,创建机器人至少需要一些编程技能。
创建 Telegram 机器人需要多少钱?
不需要花钱:Telegram 不向用户或开发者收取机器人平台的费用。只有当你把机器人放在自己的服务器上运行时,才需要为服务器付费。
BotFather 是什么?
Telegram 官方用于创建和管理机器人的机器人:名称、描述、头像、命令和令牌。
如何获取 BotFather 令牌?
令牌会在 /newbot 之后立刻发给你。如果泄露了,BotFather 里的 /token 命令会签发一个新令牌。
机器人可以用什么用户名?
5–32 个字符:拉丁字母、数字和下划线,并且必须以 bot 结尾,例如 my_shop_bot。
如何给 Telegram 机器人添加按钮?
按钮是在机器人的代码里定义的:消息下面的内联按钮和回复键盘。“/”菜单里的命令列表在 BotFather 里用 /setcommands 设置。


