安装
在配置渠道之前安装 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 签名验证依赖 body(对原始 body 进行 HMAC),因此 OpenClaw 会在验证前应用严格的预认证 body 限制(64 KB)和读取超时。
- OpenClaw 会从已验证的原始请求字节处理 webhook 事件。为保证签名完整性安全,会忽略上游中间件转换后的
req.body值。
配置
最小配置:LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
tokenFile 和 secretFile 必须指向常规文件。符号链接会被拒绝。
内联配置值优先于文件;环境变量是默认账号的最后 fallback。
多个账号:
访问控制
私信默认使用配对。未知发送者会收到一个配对代码,并且其消息会被忽略,直到获批:channels.line.dmPolicy:pairing | allowlist | open | disabled(默认pairing)channels.line.allowFrom: 私信用的允许列表 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) - 静态发送者访问组可通过
accessGroup:<name>从allowFrom、groupAllowFrom和按群组allowFrom引用;参见 访问组。 - 运行时说明:如果完全缺少
channels.line,运行时会在群组检查中 fallback 到groupPolicy="allowlist"(即使设置了channels.defaults.groupPolicy)。
- 用户:
U+ 32 个十六进制字符 - 群组:
C+ 32 个十六进制字符 - 聊天室:
R+ 32 个十六进制字符
消息行为
- 文本按 5000 个字符分块。
- Markdown 格式会被剥离;代码块和表格会在可行时转换为 Flex 卡片。
- 流式响应会被缓冲;智能体工作期间,LINE 会收到带加载动画的完整分块。
- 媒体下载受
channels.line.mediaMaxMb限制(默认 10)。 - 入站媒体会先保存到
~/.openclaw/media/inbound/,再传递给智能体,与其他渠道插件使用的共享媒体存储一致。
频道数据(富消息)
使用channelData.line 发送快速回复、位置、Flex 卡片或模板消息。
/card 命令:
ACP 支持
LINE 支持 ACP(Agent Communication Protocol)对话绑定:/acp spawn <agent> --bind here将当前 LINE 聊天绑定到 ACP 会话,而不创建子线程。- 已配置的 ACP 绑定和活跃的对话绑定 ACP 会话在 LINE 上的工作方式与其他对话渠道相同。
出站媒体
LINE 插件通过智能体消息工具发送图片、视频和音频:- 图片:作为 LINE 图片消息发送;预览图片默认使用媒体 URL。
- 视频:需要预览图片;将
channelData.line.previewImageUrl设置为图片 URL。 - 音频:作为 LINE 音频消息发送;除非设置了
channelData.line.durationMs,否则时长默认为 60 秒。
channelData.line.mediaKind;否则会从其他 LINE 选项或 URL 文件后缀推断,并以图片作为 fallback。
出站媒体 URL 必须是最多 2000 个字符的公开 HTTPS URL。OpenClaw 会在将 URL 交给 LINE 前验证目标主机名,并拒绝 local loopback、link-local 和私有网络目标。
未使用 LINE 专用选项的通用媒体发送会使用图片路由。
故障排查
- Webhook 验证失败: 确保 webhook URL 是 HTTPS,且
channelSecret与 LINE console 匹配。 - 没有入站事件: 确认 webhook 路径与
channels.line.webhookPath匹配,并且 Gateway 网关可从 LINE 访问。 - 媒体下载错误: 如果媒体超过默认限制,请提高
channels.line.mediaMaxMb。