如果你想先接一个配置简单、反馈快的渠道,Telegram 是官方文档里最适合入门的选择之一。
Telegram 适合什么场景
根据官方渠道总览:
- Telegram 通常是最快能跑起来的渠道。
- 它使用 Bot API,不需要像 WhatsApp 一样扫码绑定网页设备。
- 默认支持私聊和群组,适合个人和小团队测试。
第一步:在 BotFather 创建机器人
官方步骤是:
- 打开 Telegram,与
@BotFather对话。 - 确认用户名确实是
@BotFather。 - 发送
/newbot。 - 按提示设置机器人名称和用户名。
- 复制返回的 bot token。
这个 token 后面要写入 OpenClaw 配置或环境变量。
第二步:配置 bot token
官方支持两种方式:
- 环境变量:
TELEGRAM_BOT_TOKEN=... - 配置文件:
channels.telegram.botToken
最小配置示例:
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "123:abc",
"dmPolicy": "pairing"
}
}
}
如果环境变量和配置文件都设置了,官方说明是“配置优先,环境变量回退”。
第三步:启动 Gateway
配置完 token 后,启动 Gateway:
openclaw gateway --port 18789
官方说明是,只要 token 解析成功,Telegram 渠道就会跟着 Gateway 一起启动。
第四步:验证私信是否工作
Telegram 私信默认使用配对模式,也就是:
- 机器人第一次收到某个陌生用户的私聊消息时,不会直接开放全部能力。
- 你需要按配对流程批准该用户。
这也是为什么官方把 dmPolicy: "pairing" 作为默认建议值。
Telegram 群组为什么默认不回
这是 Telegram 新手最常踩的坑之一。官方文档把原因拆成两层:
1. 隐私模式
Telegram 机器人默认开启隐私模式。开启时,机器人无法看到所有群组消息。
如果你希望机器人能看到全部群消息,有两个官方支持的方案:
- 在 BotFather 里用
/setprivacy关闭隐私模式。 - 或者把机器人设为群管理员。
注意:官方特别提醒,切换隐私模式后,需要把机器人从群里移除再重新添加,变更才会生效。
2. OpenClaw 的群组门控
即使机器人能看见群消息,OpenClaw 默认仍然只响应提及。
推荐配置:
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "123:abc",
"dmPolicy": "pairing",
"groups": {
"*": { "requireMention": true }
}
}
}
}
这表示:
- 允许所有群组接入。
- 但默认仍要求
@机器人或命中提及模式时才回复。
如果你想让某个群始终响应
官方给出的推荐方式是按群组 ID 配置:
{
"channels": {
"telegram": {
"groups": {
"-1001234567890": { "requireMention": false }
}
}
}
}
注意两点:
- 这里的群 ID 通常是负数。
- 一旦你显式设置了
channels.telegram.groups,它就变成允许列表,只有列出的群组或"*"会被接受。
如何拿到群组 ID
官方文档给了几种方法,其中最简单的是:
- 把群里的任意消息转发给
@userinfobot或@getidsbot查看聊天 ID。
如果你不想把信息交给第三方机器人,也可以:
- 把 OpenClaw 机器人加进群。
- 发一条消息。
- 再用
openclaw logs --follow查看日志里的chat.id。
一份适合大多数人的 Telegram 配置
如果你想同时支持私聊和群聊,且保留安全边界,可以从下面这份开始:
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "123:abc",
"dmPolicy": "pairing",
"groups": {
"*": { "requireMention": true }
}
}
}
}
常见问题
菜单命令注册失败
如果日志里出现 setMyCommands failed,官方建议优先检查:
- 到
api.telegram.org的出站 HTTPS 是否被阻止 - DNS 是否异常
sendMessage 或 sendChatAction 失败
官方建议检查:
- IPv6 路由
- DNS 连通性
机器人已进群但仍然不回复
按下面顺序排查:
- 机器人是否能看见群消息
- 是否还开着隐私模式
- 是否要求
requireMention - 群组是否在允许列表中
只要这四步核对清楚,大多数 Telegram 接入问题都能定位出来。