首页 教程 分类 Skills下载 关于
ZH EN JA KO
问题排查

OpenClaw Telegram机器人无响应排查指南

· 7 分钟

问题描述

配置了 Telegram 频道后,OpenClaw 的 Telegram 机器人无法接收消息或不回复用户。常见的表现包括:

用户在 Telegram 中向机器人发送消息后完全没有反应,OpenClaw 日志中看不到任何接收到消息的记录:

[openclaw:telegram] Bot started. Listening for messages...

日志显示启动成功但之后没有任何消息处理记录。

或者日志中出现错误:

[openclaw:telegram] Error: 409 Conflict: terminated by other getUpdates request

又或者:

[openclaw:telegram] GrammyError: Call to 'getMe' failed! (401: Unauthorized)

OpenClaw 的 Telegram 频道基于 grammY 框架构建,通过 Telegram Bot API 与 Telegram 服务器通信。

诊断步骤

检查 Bot Token 是否有效

首先验证你在配置中使用的 Bot Token 是否正确且有效:

curl https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getMe

正常响应应该返回机器人的基本信息:

{
  "ok": true,
  "result": {
    "id": 123456789,
    "is_bot": true,
    "first_name": "MyBot",
    "username": "my_openclaw_bot"
  }
}

如果返回 {"ok":false,"error_code":401,"description":"Unauthorized"},说明 Token 无效。

检查 Webhook 冲突

Telegram Bot API 提供两种接收消息的方式:轮询(polling)和 Webhook。如果之前设置过 Webhook 但现在 OpenClaw 使用的是轮询方式,Webhook 的存在会导致轮询无法接收消息。

查看当前 Webhook 状态:

curl https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getWebhookInfo

如果 url 字段不为空,说明存在 Webhook 配置。

检查 OpenClaw 配置

查看 ~/.openclaw/openclaw.json 中 Telegram 频道的配置:

cat ~/.openclaw/openclaw.json | grep -A 10 telegram

确认 botToken 字段存在且不为空。

解决方案

问题一:Bot Token 无效或过期

如果 Token 无效,需要重新获取:

  1. 在 Telegram 中找到 @BotFather
  2. 发送 /mybots 查看你的机器人列表
  3. 选择对应的机器人,点击「API Token」
  4. 如果需要重置 Token,点击「Revoke current token」生成新的

将新 Token 更新到配置文件:

{
  "channels": {
    "telegram": {
      "botToken": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
    }
  }
}

然后重启 OpenClaw:

openclaw restart

问题二:Webhook 冲突(409 错误)

409 Conflict 错误通常表示有另一个进程也在使用同一个 Bot Token 调用 getUpdates,或者存在遗留的 Webhook 设置。

清除 Webhook:

curl https://api.telegram.org/bot<YOUR_BOT_TOKEN>/deleteWebhook

确保没有其他程序在使用同一个 Bot Token。检查是否有重复的 OpenClaw 实例在运行:

ps aux | grep openclaw

如果发现多个实例,停止多余的进程。

问题三:机器人权限未配置

如果机器人在群组中无法接收消息,可能是因为未开启群组隐私模式:

  1. 在 BotFather 中发送 /mybots
  2. 选择机器人 → Bot Settings → Group Privacy
  3. 将 Privacy mode 设置为 Disabled

这允许机器人接收群组中的所有消息,而不仅仅是以 / 开头的命令消息。

问题四:grammY 框架错误

如果日志中出现 grammY 相关的异常,启用详细日志进行排查:

DEBUG=openclaw:telegram*,grammy* openclaw start

常见的 grammY 错误及处理方式:

  • ETELEGRAM: 429 Too Many Requests:发送消息过于频繁,被 Telegram 限流。OpenClaw 默认配置了速率限制,但如果你修改过配置,检查限流设置。

  • EFATAL: Polling stopped:轮询因致命错误停止。查看完整错误堆栈,通常是网络问题或 Token 失效。

  • Error: getaddrinfo ENOTFOUND api.telegram.org:DNS 解析失败,检查网络连接和 DNS 配置。

问题五:网络访问受限

在某些地区,Telegram API 可能无法直接访问。配置代理:

{
  "channels": {
    "telegram": {
      "botToken": "YOUR_TOKEN",
      "proxy": {
        "url": "socks5://127.0.0.1:1080"
      }
    }
  }
}

OpenClaw 的 Telegram 频道支持 HTTP 和 SOCKS5 代理。

验证修复

修复后验证机器人工作正常:

openclaw start

然后在 Telegram 中向机器人发送一条测试消息,观察 OpenClaw 的日志输出中是否出现消息接收和处理记录。日志中应该能看到类似以下的输出:

[openclaw:telegram] Received message from user 123456: "你好"
[openclaw:gateway] Processing message for channel telegram, user 123456
[openclaw:telegram] Sent reply to user 123456

如果一切正常,机器人就会在 Telegram 中回复消息。

OpenClaw 是开源免费的个人AI助手,支持 WhatsApp、Telegram、Discord 等多平台接入