メッセージングプラットフォーム

Telegram

ステータス: grammY 経由のボットDMおよびグループで本番環境対応。デフォルトモードはロングポーリング。Webhook モードはオプション。

クイックセットアップ

ステップ 1: BotFather でボットトークンを作成する

Telegram を開き、@BotFather とチャットします(ハンドルが正確に @BotFather であることを確認してください)。/newbot を実行し、プロンプトに従い、トークンを保存します。

ステップ 2: トークンと DM ポリシーを設定する

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

環境変数フォールバック: TELEGRAM_BOT_TOKEN=... (デフォルトアカウントのみ)。Telegram は openclaw channels login telegram を使用しません。設定/環境変数でトークンを設定し、ゲートウェイを起動します。

ステップ 3: ゲートウェイを起動し、最初の DM を承認する

openclaw gateway
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>

ペアリングコードは1時間で期限切れになります。

ステップ 4: ボットをグループに追加する

ボットをグループに追加し、channels.telegram.groupsgroupPolicy を設定してアクセスモデルに合わせます。

ℹ️ トークン解決順序はアカウントを認識します。実際には、設定値が環境変数フォールバックよりも優先され、TELEGRAM_BOT_TOKEN はデフォルトアカウントにのみ適用されます。

Telegram 側の設定

アクセス制御とアクティベーション

curl "https://api.telegram.org/bot<bot_token>/getUpdates"

ランタイム動作

  • Telegram はゲートウェイプロセスによって所有されます。
  • ルーティングは決定的です: Telegram からの受信メッセージは Telegram に返信されます(モデルはチャネルを選択しません)。
  • 受信メッセージは、返信メタデータとメディアプレースホルダーを含む共有チャネルエンベロープに正規化されます。
  • グループセッションはグループ ID によって分離されます。フォーラムトピックは :topic:<threadId> を追加してトピックを分離します。
  • DM メッセージは message_thread_id を保持できます。OpenClaw はスレッドを認識したセッションキーでそれらをルーティングし、返信用にスレッド ID を保持します。
  • ロングポーリングは、チャットごと/スレッドごとのシーケンシングで grammY ランナーを使用します。全体のランナーシンク同時実行性には agents.defaults.maxConcurrent を使用します。
  • Telegram Bot API には既読サポートがありません(sendReadReceipts は適用されません)。

機能リファレンス

トラブルシューティング

さらなるヘルプ: チャネルトラブルシューティング

Telegram 設定リファレンスポインタ

主要リファレンス:

  • channels.telegram.enabled: チャネル起動の有効/無効。
  • channels.telegram.botToken: ボットトークン (BotFather)。
  • channels.telegram.tokenFile: ファイルパスからトークンを読み込み。
  • channels.telegram.dmPolicy: pairing | allowlist | open | disabled (デフォルト: pairing)。
  • channels.telegram.allowFrom: DM 許可リスト (数値 Telegram ユーザー ID)。 allowlist には少なくとも1つの送信者 ID が必要です。 open には "*" が必要です。 openclaw doctor --fix はレガシーな @username エントリを ID に解決でき、許可リスト移行フローでペアリングストアファイルから許可リストエントリを回復できます。
  • channels.telegram.actions.poll: Telegram 投票作成の有効/無効 (デフォルト: 有効; 引き続き sendMessage が必要)。
  • channels.telegram.defaultTo: 明示的な --reply-to が提供されない場合に CLI --deliver で使用されるデフォルト Telegram ターゲット。
  • channels.telegram.groupPolicy: open | allowlist | disabled (デフォルト: allowlist)。
  • `channels.tele