プラグインが必要
LINE プラグインをインストールします:セットアップ
- LINE Developers アカウントを作成し、コンソールを開きます: https://developers.line.biz/console/
- プロバイダーを作成 (または選択) し、Messaging API チャネルを追加します。
- チャネル設定からチャネルアクセストークンとチャネルシークレットをコピーします。
- Messaging API 設定で Webhook を利用する を有効にします。
- webhook URL をゲートウェイのエンドポイントに設定します (HTTPS が必要):
channels.line.webhookPath または channels.line.accounts.<id>.webhookPath を設定し、それに応じて URL を更新してください。
セキュリティに関する注意:
- LINE の署名検証はリクエストボディに依存します (生ボディに対する HMAC)。そのため、OpenClaw は検証前に厳格な事前認証ボディ制限とタイムアウトを適用します。
設定
最小限の設定:LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
アクセス制御
ダイレクトメッセージはデフォルトでペアリングになります。未知の送信者はペアリングコードを受け取り、承認されるまでメッセージは無視されます。channels.line.dmPolicy:pairing | allowlist | open | disabledchannels.line.allowFrom: DM 用の許可された LINE ユーザー IDchannels.line.groupPolicy:allowlist | open | disabledchannels.line.groupAllowFrom: グループ用の許可された LINE ユーザー ID- グループごとのオーバーライド:
channels.line.groups.<groupId>.allowFrom - ランタイムに関する注意:
channels.lineセクションが完全に欠落している場合、ランタイムはグループチェックのためにgroupPolicy="allowlist"にフォールバックします (channels.defaults.groupPolicyが設定されている場合でも)。
- ユーザー:
U+ 32 桁の 16 進数 - グループ:
C+ 32 桁の 16 進数 - ルーム:
R+ 32 桁の 16 進数
メッセージの動作
- テキストは 5000 文字で分割されます。
- Markdown フォーマットは削除されます。コードブロックとテーブルは可能な場合 Flex カードに変換されます。
- ストリーミングレスポンスはバッファリングされます。エージェントが作業している間、LINE 側にはローディングアニメーションが表示され、完了後にフルチャックを受信します。
- メディアダウンロードは
channels.line.mediaMaxMb(デフォルト 10) で制限されます。
チャネルデータ (リッチメッセージ)
channelData.line を使用して、クイックリプライ、位置情報、Flex カード、またはテンプレートメッセージを送信します。
/card コマンドも付属しています:
トラブルシューティング
- Webhook 検証が失敗する: webhook URL が HTTPS であり、
channelSecretが LINE コンソールと一致していることを確認してください。 - 受信イベントがない: webhook パスが
channels.line.webhookPathと一致し、ゲートウェイが LINE から到達可能であることを確認してください。 - メディアダウンロードエラー: メディアがデフォルト制限を超える場合は、
channels.line.mediaMaxMbを増やしてください。