如何创建 Telegram 机器人并添加到你的频道
把机器人设为 Telegram 频道里可以发帖的管理员:用 @BotFather 创建机器人,保管好令牌,发帖测试,并在帖子没有发出时排查问题。
要把机器人添加到 Telegram 频道,就要让它成为频道管理员:打开频道信息,添加管理员,搜索机器人的用户名,然后开启“发布消息”(Post messages)权限。如果你需要自己的机器人,先用 @BotFather 创建一个,并保存好它给你的令牌。正式依靠它发帖之前,先发一条测试帖。
本指南介绍机器人、令牌、权限、测试帖和问题排查,不讲如何编写机器人代码。Studio 和其他通过你自己的机器人发帖的工具,都需要同样的设置。关于发布时间和定时帖子发布失败,请参阅 Telegram 定时发布指南。
机器人在频道里能做什么
机器人是一种特殊的 Telegram 账号,不需要手机号码。谁持有它的令牌,谁就能让它发帖。
机器人不能成为频道订阅者,只能成为管理员。发帖是你授予它的权限之一,它发的帖子以频道名称署名。
本指南的例子是虚构的:一家陶艺工作室运营着公开频道 Harbor Street Pottery,想用机器人发布烧窑时间表。
用 @BotFather 创建机器人
Telegram 的 BotFather 指南介绍了以下步骤:
- 在 Telegram 中打开 @BotFather,仔细核对用户名的拼写。
- 发送
/newbot。 - 输入名称。名称以后可以修改。
- 输入用户名:5 到 32 个拉丁字母、数字或下划线,并以“bot”结尾。用户名以后无法修改。
- 从回复中复制令牌。它的格式类似
123456789:AAF…。
工作室给机器人取名 Harbor Pottery Poster,用户名为 @harbor_pottery_poster_bot。取一个队友在管理员列表里一眼就能认出的名称。
保管好机器人令牌
Telegram 提醒,任何拿到令牌的人都能控制你的机器人。像对待密码一样对待它:
- 把它存放在密码管理器里。
- 只把它粘贴到你要连接的工具中。
- 不要让它出现在截图、聊天、工单和共享文档里。
- 不要为了让别人发帖而把它分享出去。应该在发布工具里为他们开通访问权限(参阅与团队共享社交账号)。
如果令牌泄露了,就在 @BotFather 中撤销它,用 /mybots 可以打开机器人的设置。你会得到一个新令牌,旧令牌随即失效,所以要更新所有用过旧令牌的工具。
在这个例子里,工作室老板不小心把令牌粘贴到了一份共享文档中,随后撤销了它,并用新令牌重新连接了工具。
把机器人添加为频道管理员
打开频道信息,进入管理员列表。在某些应用中,它位于“管理频道”(Manage Channel)下,各应用的名称不尽相同。然后选择添加管理员,并搜索机器人的用户名。
接着 Telegram 会询问要授予哪些管理员权限。只开启你的工具需要的权限,然后保存:
| 权限 | 允许做什么 | 发帖机器人需要吗? |
|---|---|---|
| 发布消息(Post messages) | 以频道身份发帖,并删除它自己最近发的帖子 | 需要,必须开启 |
| 编辑消息(Edit messages) | 置顶帖子,以及编辑不是它自己发的帖子 | 仅在你的工具需要时 |
| 删除消息(Delete messages) | 删除不是它自己发的帖子 | 仅在你的工具需要时 |
| 更改频道信息、邀请用户、添加管理员(Change channel info, invite users, add admins) | 管理频道本身 | 不需要 |
Harbor Street Pottery 的机器人只开启了“发布消息”这一项权限。
如果是群组,就把机器人作为普通成员添加。它会以自己的名字发言,只有当群组禁止成员发送消息时,才需要管理员权限。
发送测试帖并检查
在你连接的工具里,发送一条简短、标注清楚的测试消息,例如“测试:烧窑时间表帖子,请忽略”。订阅者可能会看到它,所以内容要无伤大雅。然后检查:
- 它出现在正确的频道里,而不是名称相似的另一个频道。
- 它以频道名称署名(例子中是 Harbor Street Pottery)。
- 如果你打算发链接和照片,它们的显示效果符合预期。
测试完成后删除测试帖。在频道里删除的帖子,所有订阅者都看不到了。
机器人无法发帖时怎么排查
| 你看到的情况 | 怎么做 |
|---|---|
| 机器人无法以订阅者身份加入 | 把它添加为管理员,并开启“发布消息” |
| 机器人是管理员,但频道里收不到任何帖子 | 在它的权限中开启“发布消息” |
| 工具拒绝了令牌 | 重新复制一次;如果撤销过旧令牌,就用新令牌 |
| 之前能发帖,后来不行了 | 检查令牌、管理员列表和机器人的权限 |
| 帖子发到了错误的聊天 | 把工具重新连接到正确的频道 |
如果设置没有问题,但定时帖子没有发出,请使用发布失败检查清单。
在 Studio 中,连接 Telegram 分三步:用 @BotFather 创建机器人,粘贴它的令牌(Studio 会检查令牌并显示机器人的名称),然后选择“添加到频道”。Telegram 自带的选择界面会把机器人添加为可以发布、编辑和删除消息的管理员,频道也会自动出现在 Studio 中。选择“改用群组”可以连接群组。如果令牌失效,Studio 会在该账号上显示“重新连接”。重新连接会用新令牌把同样的步骤再走一遍。Studio 目前还未推出,但你可以加入候补名单。
