Telegram(Bot API)
状態: grammY 経由でボット DM + グループに本番対応。デフォルトはロングポーリング、webhook モードは任意です。ペアリング
Telegram のデフォルト DM ポリシーはペアリングです。
チャンネルトラブルシューティング
クロスチャネル診断と修復プレイブック。
ゲートウェイ設定
チャンネル設定パターンと完全な例。
クイックセットアップ
BotFather でボットトークンを作成
Telegram を開き、@BotFather とチャットします(ハンドルが正確に
@BotFather であることを確認)。/newbot を実行し、指示に従ってトークンを保存します。トークン解決順はアカウント対応です。実際には config の値が env フォールバックより優先され、
TELEGRAM_BOT_TOKEN はデフォルトアカウントにのみ適用されます。Telegram 側の設定
プライバシーモードとグループ可視性
プライバシーモードとグループ可視性
Telegram ボットはデフォルトで プライバシーモード が有効で、グループメッセージの受信が制限されます。ボットがすべてのグループメッセージを見る必要がある場合、次のいずれかを行います。
/setprivacyでプライバシーモードを無効化する、または- ボットをグループ管理者にする。
グループ権限
グループ権限
管理者ステータスは Telegram グループ設定で制御されます。管理者ボットはすべてのグループメッセージを受信できるため、常時有効なグループ動作に便利です。
便利な BotFather トグル
便利な BotFather トグル
/setjoingroups— グループ追加の許可/拒否/setprivacy— グループ可視性の制御
アクセス制御とアクティベーション
- DM ポリシー
- グループポリシーと allowlist
- メンション動作
channels.telegram.dmPolicy はダイレクトメッセージのアクセスを制御します。pairing(デフォルト)allowlistopen(allowFromに"*"を含める必要あり)disabled
channels.telegram.allowFrom は数値の Telegram ユーザー ID を受け付けます。telegram: / tg: プレフィックスも受け付けられ、正規化されます。
オンボーディングウィザードは @username 入力を受け付け、数値 ID に解決します。
以前の設定に @username の allowlist エントリが含まれている場合は、openclaw doctor --fix を実行して解決してください(ベストエフォート。Telegram ボットトークンが必要)。Telegram ユーザー ID の確認方法
より安全(サードパーティ不要):- ボットに DM を送信。
openclaw logs --followを実行。from.idを確認。
@userinfobot または @getidsbot。実行時の動作
- Telegram は gateway プロセスによって管理されます。
- ルーティングは決定的です。Telegram からの受信は Telegram に返信されます(モデルがチャンネルを選択することはありません)。
- 受信メッセージは、返信メタデータとメディアプレースホルダーを含む共有チャンネルエンベロープに正規化されます。
- グループセッションはグループ ID ごとに分離されます。フォーラムトピックでは
:topic:<threadId>が付加され、トピックを分離します。 - DM メッセージは
message_thread_idを含む場合があり、OpenClaw はスレッド対応セッションキーでルーティングし、返信時に thread ID を保持します。 - ロングポーリングは grammY runner を使用し、チャット/スレッド単位で順序制御されます。全体の同時実行数は
agents.defaults.maxConcurrentを使用します。 - Telegram Bot API は既読通知をサポートしません(
sendReadReceiptsは適用されません)。
機能リファレンス
ライブストリームプレビュー(メッセージ編集)
ライブストリームプレビュー(メッセージ編集)
OpenClaw は一時的な Telegram メッセージを送信し、テキスト到着に応じて編集することで部分返信をストリーミングできます。要件:
channels.telegram.streamModeが"off"ではない(デフォルト:"partial")
off: ライブプレビューなしpartial: 部分テキストで頻繁に更新block:channels.telegram.draftChunkを使用したチャンク更新
streamMode: "block" の draftChunk デフォルト:minChars: 200maxChars: 800breakPreference: "paragraph"
maxChars は channels.telegram.textChunkLimit によって制限されます。これは DM とグループ/トピックで動作します。テキストのみの返信では、同じプレビューメッセージを保持し、最終的にその場で編集します(2 通目は送信されません)。複雑な返信(例: メディアを含む場合)は通常の最終配信にフォールバックし、その後プレビューメッセージを削除します。streamMode はブロックストリーミングとは別です。Telegram でブロックストリーミングが有効な場合、二重ストリーミングを避けるためプレビューはスキップされます。Telegram 専用推論ストリーム:/reasoning streamは生成中に推論をライブプレビューへ送信- 最終回答は推論テキストなしで送信