ホーム チュートリアル カテゴリ Skills サイトについて
ZH EN JA KO
トラブルシューティング

OpenClaw Telegramボットが応答しない場合のトラブルシューティング

· 9 分で読了

問題の説明

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 にはメッセージ受信の方法が 2 つあります:ポーリング(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 フィールドが存在し、空でないことを確認してください。

解決策

問題1: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

問題2: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

複数のインスタンスが見つかった場合は、余分なプロセスを停止してください。

問題3:ボットの権限が未設定

ボットがグループ内でメッセージを受信できない場合、グループプライバシーモードが有効になっていない可能性があります。

  1. BotFather で /mybots を送信
  2. ボットを選択 → Bot Settings → Group Privacy
  3. Privacy mode を Disabled に設定

これにより、ボットは / で始まるコマンドメッセージだけでなく、グループ内のすべてのメッセージを受信できるようになります。

問題4: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 設定を確認してください。

問題5:ネットワークアクセスの制限

一部の地域では、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など多数のプラットフォームに対応