dmPolicy
管私聊入口。pairing 是先审批,allowlist 是只让名单里的人进,open 是谁都能来,disabled 是压根不接私聊。
Channels 导读
配置分三步:在 BotFather 拿 token,写入 config 或环境变量,启动 gateway 后配对第一个 DM。最容易搞错的是 DM 配对只管私聊,群组发信权限要靠 allowFrom 里的数字 ID 显式授权。
先讲这一页到底在解决什么
配置分三步:在 BotFather 拿 token,写入 config 或环境变量,启动 gateway 后配对第一个 DM。最容易搞错的是 DM 配对只管私聊,群组发信权限要靠 allowFrom 里的数字 ID 显式授权。
第一站
别人从 Telegram 敲门,OpenClaw 收到消息,想好回复,再从 Telegram 把话送回去。Telegram 通道干的就是这件事。
没有它,Telegram 根本不知道“这个机器人是谁”。所以 BotFather 给你的那串 token,不是可有可无的密钥,而是机器人上岗证。
它决定私聊时谁能进来找机器人。默认的 pairing 像门卫先拦一下,确认过再放人进来。
它决定机器人在群里是“谁都能喊它”,还是“只有指定的人能喊它”,还是干脆不参与群聊。
先拿到 token,再决定私聊门禁,最后决定群聊规则。Telegram 这页大半内容,其实都在围着这三件事转。
第二站
官方原文信息很多,但第一次配置最怕的是看完一圈还是不知道先做什么。其实顺序很简单,就四步。
你先去 Telegram 办一张机器人工作证,再把这张工作证交给 OpenClaw,然后让第一个来敲门的人完成登记,最后才决定它在群里是安静旁听,还是有人一喊就出来帮忙。
你去 Telegram 里找 @BotFather,执行 /newbot,Telegram 会发给你一串 token。那串 token 就是 OpenClaw 以后登录 Telegram 机器人的凭证。
把 channels.telegram.enabled 打开,再把 botToken 填进去。这里不是网页扫码登录,而是直接喂 token,所以别再去找什么 openclaw channels login telegram 了,这条路对 Telegram 不适用。
默认私聊规则是 pairing。意思不是“所有人都能聊”,而是“第一次来的人先举手,管理员批准以后才能聊”。这是很合理的默认值,因为它比直接开放更稳。
把机器人拉进群以后,你才需要认真看 groups、groupPolicy、requireMention 这些字段。很多人一上来就研究群规则,结果连私聊都还没跑通,顺序完全反了。
botToken: "123:abc":这里要换成 BotFather 真给你的 token。你可以把它理解成“把机器人工牌挂到 OpenClaw 脖子上”。没有这张工牌,它连 Telegram 大门都进不去。dmPolicy: "pairing":表示第一次私聊不是直接放行,而是先到门卫室登记。登记过、批准过,这个人以后再来敲门,机器人才会理他。groups: { "*": { requireMention: true } }:这段配置的意思不是“允许所有群里乱聊”,而是“在所有群里先默认装个礼貌规则,只有被点名才说话”。openclaw pairing list telegram:像翻门口登记簿,看看现在有哪些 Telegram 用户正站在外面等你点头。openclaw pairing approve telegram <CODE>:像把其中一个人领进门。<CODE> 不是随便写,它就是那个人手里的临时入场券号码。第三站
很多人会以为 OpenClaw 配好了,机器人就该在群里什么都能看到。不是。Telegram 自己还藏着一个关键设置,叫 Privacy Mode。
默认情况下,机器人在群里不会听见所有人说的话。它更像只在“被点名”或者“收到命令”时才醒过来。
你要么去 BotFather 用 /setprivacy 把隐私模式关掉,要么把机器人升成群管理员。否则你就算把 OpenClaw 里的 requireMention 改成 false,它也照样可能听不见。
切换隐私模式之后,最好把机器人从群里移出去再重新加回来。不是仪式感,而是 Telegram 往往要这样才会把新规则真正套进去。
群里“机器人不说话”的问题,常常不是 OpenClaw 坏了,而是 Telegram 自己没让它听见。
第四站
官方这一大段其实都在防一种经典事故:你本来想配置“允许哪个群”,结果写成了“允许哪些人”;或者你本来想限制群里谁能触发机器人,却把群 ID 填错位置。
dmPolicy管私聊入口。pairing 是先审批,allowlist 是只让名单里的人进,open 是谁都能来,disabled 是压根不接私聊。
groups管“哪些群是允许的”。这里放的是群 ID,Telegram 群或超级群经常长得像负数,例如 -1001234567890。
groupAllowFrom管“在已经允许的群里,哪些人可以触发机器人”。这里放的是用户 ID,不是群 ID。
requireMention管“群里必须叫它名字才回应,还是可以自动插话”。这和 Telegram 的隐私模式一起决定了它到底听得见多少。
groupAllowFrom 不是“群白名单”,而是“群里的人白名单”。channels.telegram.groups 下面。8734062810 这种用户 ID,才应该放到 allowFrom 或 groupAllowFrom。第五站
官方给了很多高级选项,但对大多数人来说,先把它当“我自己的 Telegram 助手”去配置,反而最不容易翻车。
如果最后只有你自己用,配通以后可以从 pairing 进阶到 allowlist,把你自己的数字用户 ID 明确写进去。这样权限不是靠“曾经批准过”,而是直接写死在配置里,更稳。
如果机器人只是偶尔帮忙,先保持 requireMention: true。这相当于让它学会“被叫到再说话”,群里会安静很多,也更不容易误触发。
最私密的办法不是找第三方机器人,而是先私聊你自己的 bot,再跑 openclaw logs --follow,去看日志里的 from.id。这个方法虽然土,但最干净。
因为用户名会改,数字 ID 基本不变。权限配置里,稳定比好看更重要。
第六站
很多文档一贴命令就突然变冷。其实命令不是冰冷咒语,它只是把你脑子里的动作,换成电脑听得懂的话。
openclaw gateway这条命令像“把总控台开机”。它不是 Telegram 专属命令,而是把整个 OpenClaw 的消息中枢拉起来。中枢不开,前面那些 token、群规则、配对规则都只是纸上谈兵。
openclaw logs --follow这条命令像站在后台玻璃窗后面偷看机器人上班。你能看到是谁发来了消息、系统认出了什么 ID、为什么某条消息被跳过,所以它特别适合查“为什么它不回我”。
curl https://api.telegram.org/.../getUpdates这条命令像直接去问 Telegram 前台:“刚刚到底发生了什么?”一般情况下不必先用它,但当你怀疑问题出在 Telegram 侧,而不是 OpenClaw 侧,它就像一条绕过中间人的直查路线。
像 -1001234567890 这种值看着吓人,其实只是 Telegram 发给每个群的门牌号。把它放进 groups,意思就是告诉 OpenClaw:“只允许到这个门牌号的房间里工作。”
第七站
这页后半段还有很多功能:流式预览、命令菜单、inline buttons、poll、webhook、exec approvals。它们不是不重要,而是它们都属于“先活起来,再变漂亮”。
先确认机器人能收消息、能回消息、权限没配错。只要这三件事没稳住,去折腾流式预览和按钮,多半是在给自己加噪音。
streaming 是让回复像“边想边打字”;customCommands 是给 Telegram 菜单加按钮入口;inline buttons 和 poll 则是在把机器人从“会聊天”推向“会操作”。
把它当“升级菜单”读,不要当“基础必修课”读。否则很容易出现一种错觉:好像 Telegram 通道很可怕、参数很多。其实不是,是官方把基础和增强都写在了一页里。
前半页负责让机器人站起来,后半页负责让机器人看起来更聪明。
最后总结
这页真正讲的不是“Telegram 有多少配置项”,而是“怎样让一个 Telegram 机器人既能说上话,又不会乱说话”。
如果你接下来只继续看一页,我建议去看 /channels/pairing。因为 Telegram 这页最核心的默认安全机制,就是 pairing。