OpenClaw 集成

OpenClaw Telegram 一站式接入:先跑通私聊,再开放一个测试群

附可下载配置与验收表,按 BotFather、tokenFile、私聊配对、用户 ID、群 ID、提及规则的顺序完成接入。

生态 预计 35 分钟 更新 2026/9/6 核验 2026/9/6
本页目录

完成结果

学完后你会留下什么

一份按实际 ID 修改的配置,以及填写了私聊、群聊、未授权消息结果的验收表。

验证版本
2026.9.2
适合谁
已有可用 Gateway,希望用自己的 Telegram Bot 接收任务的用户
开始前确认
  • Gateway 已可在 Dashboard 回复模型消息
  • 可以创建自己的 Telegram Bot 和测试群
  • 可以备份并修改 Gateway 配置,本文从单 Bot 默认账户开始

这篇的终点很具体:你给自己的 Bot 发私信能收到回复;在一个指定测试群中,只有允许的人按规则触发它。先只做文字消息,跑通后再接文件、自动化或多个 Bot。

**本站验证范围:**已在 macOS、Node 24.15.0、OpenClaw 2026.9.2 中校验本文两个配置片段。没有真实 Telegram Bot 收发实测,下面的消息结果是读者需要检查的预期,不是本站已经收到的回复。

1. 准备材料,先证明模型可用

先在 Dashboard 发一条普通消息,确认模型可以回复。如果这里就报认证或余额错误,先解决模型接入;换成 Telegram 入口不会修好模型。

下载三个文件,保存到自己的练习目录:

这两个 JSON 是合并片段,不能覆盖整份 OpenClaw 配置。本教程从一个尚未配置 Telegram 的默认账户开始;已有具名 accounts 或多个 Bot 的环境,应先按官方多账户说明逐项合并,不能直接套用。

在 Gateway 主机终端运行:

openclaw --version
openclaw config file
openclaw gateway status

根据 config file 打印的路径,在本机复制一份配置备份,记住恢复位置。备份可能包含其他服务凭据,不要上传到公开仓库。本文命令以 2026.9.2 为基线;旧版本不认识 config patch 时先查该版本帮助。

2. 创建 Bot,把 token 留在 Gateway 主机

  1. 在 Telegram 打开官方 @BotFather,确认用户名拼写。
  2. 发送 /newbot,按提示设置名称和 Bot 用户名。
  3. 保存返回的 token;它控制的是 Bot,不是你的 Telegram 用户 ID。
  4. Gateway 主机创建一个私人文本文件,例如用户目录中的 telegram-token.txt,文件正文只放 token。通过本机编辑器粘贴,不要把 token 放进终端命令或截图。
  5. 确保运行 Gateway 的账号能读取该文件,其他非必要账号不能读取。

打开下载的 telegram-dm-example.json,将 /REPLACE/telegram-token.txt 改为该文件的实际绝对路径。JSON 中 Windows 路径的反斜杠需要转义,使用正斜杠形式通常更容易阅读;路径仍必须位于运行 Gateway 的机器,而不是仅位于浏览器所在电脑。

本文只用 tokenFile。不要再同时填另一份旧 botToken 或依赖不同的环境变量;该版本优先读取 tokenFile,其次 botToken,默认账户最后才使用 TELEGRAM_BOT_TOKEN

3. 只启用私聊,暂时禁用群聊

私聊片段的核心是:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "tokenFile": "/REPLACE/telegram-token.txt",
      "dmPolicy": "pairing",
      "groupPolicy": "disabled"
    }
  }
}

确认已替换路径。在下载文件所在目录先预览修改:

openclaw config patch --file ./telegram-dm-example.json --dry-run

确认预览只涉及预期的 Telegram 字段,再应用:

openclaw config patch --file ./telegram-dm-example.json
openclaw config validate --json

config patch 会递归合并对象,但数组会整体替换。它不是“检查一下”,第二条不带 dry-run 的命令会写配置。

**既要看 valid,也要看 warnings。**配置结构正确不能证明 token 可读、Telegram 可达或模型能回答。

如果 Gateway 作为后台服务运行,执行 openclaw gateway restart。若之前是在终端前台运行,先停止那个进程,再用 openclaw gateway 启动;不要再开第二个进程抢同一个 Bot 的更新。

4. 完成私聊配对,再取得自己的数字 ID

打开自己的 Bot,点击 Start,发送 你好。在 pairing 策略下,首次应收到配对信息;尚未得到授权时,不应直接让陌生人执行任务。

在 Gateway 主机运行:

openclaw pairing list telegram

核对发送者是自己,再用实际配对码替换下例:

openclaw pairing approve telegram "实际配对码"

配对码有时效,过期后应重新触发并核对新码,不要批准不认识的人。批准后再发一条普通文字请求,确认得到模型回复。

记录配对回复中的 Your Telegram user id。也可在 openclaw logs --follow 中查看对应配对请求的 senderUserId,取得后停止跟踪,避免收集无关聊天日志。这个数字既不是手机号、Bot ID,也不是 @username

5. 只允许一个群里的指定发送者

创建一个你有权管理的测试群,将 Bot 加入。先不授予不需要的管理员能力。

在 Gateway 主机跟踪日志,向测试群发送一条提及 Bot 的消息,从对应事件读取群 chat ID。只看这次测试的上下文,不把整份日志公开。超级群 ID 通常是 -100... 形式,但不能凭格式编造;要使用实际观察到的值。

打开 telegram-group-example.json,替换三类信息:

文件中的示例替换为控制什么
/REPLACE/telegram-token.txtGateway 的实际 token 文件路径连接哪个 Bot
123456789,有两处你自己的数字用户 ID私聊与群聊的发送者
-1001234567890测试群的实际 chat ID允许哪个群

片段使用 dmPolicy: allowlist、明确的 allowFromgroupAllowFrom,并在 groups 中只列一个群。**群 ID 是地图的键,用户 ID 是允许列表成员,不能互换。**私聊配对记录不会自动变成群聊允许列表。

替换完成后:

openclaw config patch --file ./telegram-group-example.json --dry-run
openclaw config patch --file ./telegram-group-example.json
openclaw config validate --json

按第 3 步的运行方式重启,再在测试群发送 @你的Bot用户名 只回复测试成功。若实际环境有其他群配置,递归合并不会替你删除旧群;应先核对完整 groups,不能只看新加的一项。

6. 分清 Privacy Mode 和 requireMention

Telegram 的 Privacy Mode 决定 Bot 能收到哪些群消息;OpenClaw 的 requireMention 决定收到后何时触发。后者不能让 Telegram 发送原本不可见的消息。

本练习保持 Privacy Mode,使用 requireMention: true。先验证明确提及。普通非提及测试要发一条新消息,不要回复 Bot,因为回复关系也可能影响触发判断。

只有确实需要持续接收群消息时,才考虑通过 BotFather /setprivacy 调整,或按任务需要授予管理员能力;更改隐私模式后,按 Telegram 说明重新将 Bot 加入群,让设置生效。不要为了修一个提及失败就直接开放所有群和所有发送者。

7. 按七条路径验收,不能只测“能回复”

在下载的验收表中记录本人私聊、非授权私聊、群内授权提及、普通新消息、未授权提及及未配置群等路径。没有第二个合适的测试账号或测试群,就写“未验证”,不要打勾。

本站配置校验发现的一个陷阱

我们把私聊策略设为 allowlist,再把 allowFrom 清空。2026.9.2 的实际 CLI 返回仍是 valid: true,但附带警告:所有私聊会被丢弃。也就是说,只判断退出码或 valid 字段,会漏掉不可用配置。

查看配置验证记录。这份记录没有包含真实 Bot 凭据,也没有声称已经通过七项消息验收。

8. 失败时从对应一层开始

症状优先检查
getMe 401当前 token 是否正确、tokenFile 是否仍指向旧文件
token 文件读取失败路径在不在 Gateway 主机、服务账号是否可读
私聊没有模型回复配对状态、allowFrom、Dashboard 的模型是否正常
私聊可用但群聊不回应groupPolicy、群 ID、groupAllowFrom、提及与平台可见性
长轮询 409是否有另一台 Gateway、脚本或旧进程使用同一个 Bot token
改配置后行为没变修改的是不是实际配置文件、进程是否完成重载

不要让自己的诊断脚本同时运行 getUpdates 抢 Bot 消息。初次接入使用默认长轮询,无需为此搭建公网 webhook;确有 webhook 需求再读官方参数和认证说明。

需要停止群聊时,将 groupPolicy 改回 disabled,验证配置并重启,再检查群里不再触发任务。若需要回退整次修改,恢复事先保存的配置,并注意之后新增的其他设置不能被旧备份覆盖。

下一步

配对失败继续看 pairing 教程;多个渠道或多个 Agent 的消息分配看 channel routing;需要让任务执行主机命令时,再单独完成 执行审批练习

官方资料

版本和参数,以这些来源为准

本文按实际任务重写,快速变化的信息仍应在操作前回到官方页面核对。

常见问题

继续操作前,先确认这些边界

Telegram 需要 channels login 吗?

不需要 WhatsApp 式扫码登录。本文通过 tokenFile 提供 Bot token,然后验证 Gateway 的 Telegram 接入。

私聊 pairing 已批准,群里为什么仍不能使用?

群聊要分别允许群 ID 和发送者 ID,还受提及规则与 Telegram 消息可见性影响;不会自动继承私聊配对权限。

config validate 显示 valid:true 就可以用了吗?

不能。还要看 warnings,并真实验证连接、发送者准入和模型回复;本站实测空 DM 允许列表仍返回 valid:true,但警告所有私聊会被丢弃。

继续学习

按当前任务继续推进