安裝
設定頻道前,先安裝 LINE:設定
- 建立 LINE Developers 帳號並開啟 Console: https://developers.line.biz/console/
- 建立(或選取)Provider,並新增 Messaging API 頻道。
- 從頻道設定複製 Channel access token 和 Channel secret。
- 在 Messaging API 設定中啟用 Use webhook。
- 將網路鉤子 URL 設為你的閘道端點(需要 HTTPS):
channels.line.webhookPath 或
channels.line.accounts.<id>.webhookPath,並相應更新 URL。
安全注意事項:
- LINE 簽章驗證依賴本文(對原始本文執行 HMAC),因此 OpenClaw 會在驗證前套用嚴格的預先驗證本文限制(64 KB)與讀取逾時。
- OpenClaw 會從已驗證的原始請求位元組處理網路鉤子事件。為了簽章完整性安全,會忽略上游中介軟體轉換過的
req.body值。
設定
最小設定:LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
tokenFile 和 secretFile 必須指向一般檔案。會拒絕符號連結。
行內設定值優先於檔案;環境變數是預設帳號的最後備援。
多個帳號:
存取控制
直接訊息預設為配對。未知寄件者會取得配對碼,且其 訊息會被忽略,直到核准為止:channels.line.dmPolicy:pairing | allowlist | open | disabled(預設pairing)channels.line.allowFrom:允許清單中的 LINE 使用者 ID,用於 DM;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 個十六進位字元 - 群組:
C+ 32 個十六進位字元 - 聊天室:
R+ 32 個十六進位字元
訊息行為
- 文字會以 5000 個字元為單位分段。
- Markdown 格式會被移除;程式碼區塊和表格會盡可能轉換為 Flex 卡片。
- 串流回應會被緩衝;agent 工作時,LINE 會收到帶有載入 動畫的完整分段。
- 媒體下載受
channels.line.mediaMaxMb限制(預設 10)。 - 傳入媒體會先儲存在
~/.openclaw/media/inbound/底下,再傳遞 給 agent,與其他頻道外掛使用的共享媒體儲存區一致。
頻道資料(豐富訊息)
使用channelData.line 傳送快速回覆、位置、Flex 卡片或範本
訊息。
/card 命令,可用於 Flex 訊息預設:
ACP 支援
LINE 支援 ACP(Agent Communication Protocol)對話綁定:/acp spawn <agent> --bind here會將目前 LINE 聊天綁定到 ACP 工作階段,而不建立子執行緒。- 已設定的 ACP 綁定與作用中的對話綁定 ACP 工作階段,在 LINE 上會像其他對話頻道一樣運作。
傳出媒體
LINE 外掛會透過 agent 訊息工具傳送圖片、影片和音訊:- 圖片:以 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 專屬選項的一般媒體傳送會使用圖片路由。
疑難排解
- 網路鉤子驗證失敗: 確認網路鉤子 URL 是 HTTPS,且
channelSecret與 LINE console 相符。 - 沒有傳入事件: 確認網路鉤子路徑符合
channels.line.webhookPath, 且閘道可由 LINE 連線。 - 媒體下載錯誤: 如果媒體超過預設限制,請提高
channels.line.mediaMaxMb。