OpenClaw更新至2026.2.22-2版本后,Telegram Bot发送命令返回未授权错误。原因为dmPolicy设为allowlist但未配置allowFrom用户列表。解决方法:获取用户ID并添加至配置文件的allowFrom项,注意键名正确,随后重启Gateway服务即可。
今天在 OpenClaw 的 Telegram Bot 上遇到了一个问题:发送任何命令都返回 You are not authorized to use this command 错误。记录一下解决过程。
问题现象
Gateway 服务正常运行,Telegram Bot 也成功启动,但发送任何命令(如 /status)都返回未授权错误。
问题原因
版本更新导致
这个问题是在 OpenClaw 更新到 2026.2.22-2 版本后出现的。新版本对安全策略进行了调整,默认的 dmPolicy 行为可能有变化,导致之前正常工作的配置突然失效。
配置问题
检查配置文件 ~/.openclaw/openclaw.json 后发现,Telegram 的 DM(私信)策略设置为 allowlist:
{
"channels": {
"telegram": {
"dmPolicy": "allowlist",
"groupPolicy": "allowlist"
}
}
}
但配置中没有添加任何用户到允许列表(allowFrom),所以所有人都被拒绝了。
解决方法
需要添加你的 Telegram 用户 ID 到 allowFrom 列表。
1. 获取你的 Telegram 用户 ID
方法一:查看 Gateway 日志
openclaw logs --follow
# 然后给你的 Bot 发一条消息,日志中会显示 from.id
方法二:使用 Bot API
curl "https://api.telegram.org/bot<你的bot_token>/getUpdates"
2. 修改配置文件
编辑 ~/.openclaw/openclaw.json,在 channels.telegram 中添加 allowFrom:
{
"channels": {
"telegram": {
"enabled": true,
"dmPolicy": "allowlist",
"allowFrom": [6327632490],
"groupPolicy": "allowlist"
}
}
}
注意:键名是 allowFrom,不是 dmAllowlist。我一开始用了错误的键名导致不生效。
3. 重启 Gateway
systemctl --user restart openclaw-gateway.service
dmPolicy 其他选项
| 值 | 说明 |
|---|---|
pairing | 默认值,需要用户先发消息获取配对码,然后运行 openclaw pairing approve telegram <CODE> |
allowlist | 只允许 allowFrom 列表中的用户 |
open | 允许所有人(需要 allowFrom: ["*"]) |
disabled | 禁用私信功能 |
总结
- 此问题在 OpenClaw 更新到 2026.2.22-2 版本后可能出现
- 检查
dmPolicy设置 - 如果使用
allowlist,必须配置allowFrom - 键名是
allowFrom(不是dmAllowlist) - 修改后重启 Gateway
希望这篇文章能帮到遇到同样问题的人!

暂无评论
要发表评论,您必须先 登录