返回教程中心
消息渠道接入

OpenClaw Telegram 接入教程,Bot 配置和群组权限设置

O
OpenClaw AI
2026-03-25

如果你想先接一个配置简单、反馈快的渠道,Telegram 是官方文档里最适合入门的选择之一。

Telegram 适合什么场景

根据官方渠道总览:

  • Telegram 通常是最快能跑起来的渠道。
  • 它使用 Bot API,不需要像 WhatsApp 一样扫码绑定网页设备。
  • 默认支持私聊和群组,适合个人和小团队测试。

第一步:在 BotFather 创建机器人

官方步骤是:

  1. 打开 Telegram,与 @BotFather 对话。
  2. 确认用户名确实是 @BotFather。
  3. 发送 /newbot。
  4. 按提示设置机器人名称和用户名。
  5. 复制返回的 bot token。

这个 token 后面要写入 OpenClaw 配置或环境变量。

第二步:配置 bot token

官方支持两种方式:

  • 环境变量:TELEGRAM_BOT_TOKEN=...
  • 配置文件:channels.telegram.botToken

最小配置示例:

json
{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "123:abc",
      "dmPolicy": "pairing"
    }
  }
}

如果环境变量和配置文件都设置了,官方说明是“配置优先,环境变量回退”。

第三步:启动 Gateway

配置完 token 后,启动 Gateway:

bash
openclaw gateway --port 18789

官方说明是,只要 token 解析成功,Telegram 渠道就会跟着 Gateway 一起启动。

第四步:验证私信是否工作

Telegram 私信默认使用配对模式,也就是:

  • 机器人第一次收到某个陌生用户的私聊消息时,不会直接开放全部能力。
  • 你需要按配对流程批准该用户。

这也是为什么官方把 dmPolicy: "pairing" 作为默认建议值。

Telegram 群组为什么默认不回

这是 Telegram 新手最常踩的坑之一。官方文档把原因拆成两层:

1. 隐私模式

Telegram 机器人默认开启隐私模式。开启时,机器人无法看到所有群组消息。

如果你希望机器人能看到全部群消息,有两个官方支持的方案:

  • 在 BotFather 里用 /setprivacy 关闭隐私模式。
  • 或者把机器人设为群管理员。

注意:官方特别提醒,切换隐私模式后,需要把机器人从群里移除再重新添加,变更才会生效。

2. OpenClaw 的群组门控

即使机器人能看见群消息,OpenClaw 默认仍然只响应提及。

推荐配置:

json
{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "123:abc",
      "dmPolicy": "pairing",
      "groups": {
        "*": { "requireMention": true }
      }
    }
  }
}

这表示:

  • 允许所有群组接入。
  • 但默认仍要求 @机器人 或命中提及模式时才回复。

如果你想让某个群始终响应

官方给出的推荐方式是按群组 ID 配置:

json
{
  "channels": {
    "telegram": {
      "groups": {
        "-1001234567890": { "requireMention": false }
      }
    }
  }
}

注意两点:

  • 这里的群 ID 通常是负数。
  • 一旦你显式设置了 channels.telegram.groups,它就变成允许列表,只有列出的群组或 "*" 会被接受。

如何拿到群组 ID

官方文档给了几种方法,其中最简单的是:

  • 把群里的任意消息转发给 @userinfobot 或 @getidsbot 查看聊天 ID。

如果你不想把信息交给第三方机器人,也可以:

  • 把 OpenClaw 机器人加进群。
  • 发一条消息。
  • 再用 openclaw logs --follow 查看日志里的 chat.id。

一份适合大多数人的 Telegram 配置

如果你想同时支持私聊和群聊,且保留安全边界,可以从下面这份开始:

json
{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "123:abc",
      "dmPolicy": "pairing",
      "groups": {
        "*": { "requireMention": true }
      }
    }
  }
}

常见问题

菜单命令注册失败

如果日志里出现 setMyCommands failed,官方建议优先检查:

  • 到 api.telegram.org 的出站 HTTPS 是否被阻止
  • DNS 是否异常

sendMessage 或 sendChatAction 失败

官方建议检查:

  • IPv6 路由
  • DNS 连通性

机器人已进群但仍然不回复

按下面顺序排查:

  1. 机器人是否能看见群消息
  2. 是否还开着隐私模式
  3. 是否要求 requireMention
  4. 群组是否在允许列表中

只要这四步核对清楚,大多数 Telegram 接入问题都能定位出来。

继续阅读

相关阅读与站内入口

准备好开始了吗?

继续探索更多教程,或者去技能市场看看有哪些现成的插件。