インストール
チャンネルを設定する前に LINE をインストールします。セットアップ
- LINE Developers アカウントを作成し、Console を開きます: https://developers.line.biz/console/
- Provider を作成 (または選択) し、Messaging API チャンネルを追加します。
- チャンネル設定から Channel access token と Channel secret をコピーします。
- Messaging API 設定で Use webhook を有効にします。
- Webhook URL を Gateway エンドポイントに設定します (HTTPS 必須):
channels.line.webhookPath または
channels.line.accounts.<id>.webhookPath を設定し、それに応じて URL を更新します。
セキュリティメモ:
- LINE の署名検証は本文に依存します (raw body に対する HMAC)。そのため OpenClaw は検証前に厳格な事前認証本文制限 (64 KB) と読み取りタイムアウトを適用します。
- OpenClaw は、検証済みの raw リクエストバイトから Webhook イベントを処理します。署名整合性の安全性のため、上流ミドルウェアで変換された
req.body値は無視されます。
設定
最小設定:LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
tokenFile と secretFile は通常ファイルを指している必要があります。シンボリックリンクは拒否されます。
インライン設定値はファイルより優先されます。環境変数はデフォルトアカウントの最後のフォールバックです。
複数アカウント:
アクセス制御
ダイレクトメッセージはデフォルトでペアリングになります。不明な送信者にはペアリングコードが発行され、 承認されるまでそのメッセージは無視されます。channels.line.dmPolicy:pairing | allowlist | open | disabled(デフォルトpairing)channels.line.allowFrom: DM の許可リストに含める LINE ユーザー ID。dmPolicy: "open"には["*"]が必要channels.line.groupPolicy:allowlist | open | disabled(デフォルトallowlist)channels.line.groupAllowFrom: グループの許可リストに含める LINE ユーザー ID- グループごとのオーバーライド:
channels.line.groups.<groupId>.allowFrom(加えてenabled,requireMention,systemPrompt,skills) - 静的な送信者アクセスグループは、
allowFrom、groupAllowFrom、グループごとのallowFromからaccessGroup:<name>で参照できます。アクセスグループ を参照してください。 - ランタイムメモ:
channels.lineが完全に欠落している場合、ランタイムはグループチェックでgroupPolicy="allowlist"にフォールバックします (channels.defaults.groupPolicyが設定されている場合でも)。
- ユーザー:
U+ 32 桁の 16 進文字 - グループ:
C+ 32 桁の 16 進文字 - ルーム:
R+ 32 桁の 16 進文字
メッセージ動作
- テキストは 5000 文字で分割されます。
- Markdown 書式は取り除かれます。コードブロックとテーブルは可能な場合 Flex カードに変換されます。
- ストリーミング応答はバッファリングされます。エージェントが動作している間、LINE はローディング アニメーション付きで完全なチャンクを受信します。
- メディアダウンロードは
channels.line.mediaMaxMb(デフォルト 10) によって上限が設定されます。 - 受信メディアはエージェントに渡される前に
~/.openclaw/media/inbound/に保存され、 他のチャンネル Plugin が使用する共有メディアストアと一致します。
チャンネルデータ (リッチメッセージ)
channelData.line を使用して、クイックリプライ、位置情報、Flex カード、テンプレート
メッセージを送信します。
/card コマンドも同梱されています。
ACP サポート
LINE は ACP (Agent Communication Protocol) 会話バインディングに対応しています。/acp spawn <agent> --bind hereは、子スレッドを作成せずに現在の LINE チャットを ACP セッションにバインドします。- 設定済みの ACP バインディングとアクティブな会話バインド ACP セッションは、他の会話チャンネルと同様に LINE で動作します。
送信メディア
LINE Plugin は、エージェントメッセージツールを通じて画像、動画、音声を送信します。- 画像: LINE 画像メッセージとして送信されます。プレビュー画像はデフォルトでメディア URL になります。
- 動画: プレビュー画像が必要です。
channelData.line.previewImageUrlを画像 URL に設定します。 - 音声: LINE 音声メッセージとして送信されます。
channelData.line.durationMsが設定されていない限り、時間はデフォルトで 60 秒です。
channelData.line.mediaKind から取得されます。それ以外の場合は、
他の LINE オプションまたは URL ファイル接尾辞から推測され、フォールバックは画像になります。
送信メディア URL は、最大 2000 文字の公開 HTTPS URL である必要があります。OpenClaw は
URL を LINE に渡す前にターゲットホスト名を検証し、loopback、link-local、private-network ターゲットを拒否します。
LINE 固有のオプションなしの汎用メディア送信では、画像ルートが使用されます。
トラブルシューティング
- Webhook 検証に失敗する: Webhook URL が HTTPS であり、
channelSecretが LINE コンソールと一致していることを確認してください。 - 受信イベントがない: Webhook パスが
channels.line.webhookPathと一致し、 Gateway が LINE から到達可能であることを確認してください。 - メディアダウンロードエラー: メディアがデフォルト制限を超える場合は、
channels.line.mediaMaxMbを引き上げてください。
関連
- チャンネル概要 — 対応しているすべてのチャンネル
- ペアリング — DM 認証とペアリングフロー
- グループ — グループチャットの動作とメンションゲート
- チャンネルルーティング — メッセージのセッションルーティング
- セキュリティ — アクセスモデルと堅牢化