OpenClaw

OpenClaw LINE 渠道

即时通讯
中等

通过官方 Messaging API 将 OpenClaw 连接到 LINE。此基于插件的集成让你的 AI 助手可以在 LINE 上收发消息 —— LINE 是日本、台湾、泰国和东南亚最受欢迎的即时通讯平台之一。OpenClaw 通过 Webhook 接收事件并通过 Messaging API 回复,支持丰富的消息类型,包括 Flex 消息、模板消息、快捷回复和媒体分享。

快速信息
难度中等
分类即时通讯
支持功能数3 / 6

LINE 支持的功能

文本消息

支持

媒体与文件

支持

消息反应

不支持

消息线程

不支持

语音消息

不支持

群聊

支持

LINE 前置条件

  • LINE Developers 账号(可在 developers.line.biz 免费注册)
  • 在 LINE Developers Console 中创建 Provider 和 Messaging API 渠道
  • 从 Messaging API 渠道设置中获取 Channel access token 和 Channel secret
  • OpenClaw Gateway 已运行并可通过公共 HTTPS URL 访问(Webhook 所需)
  • 已安装 LINE 插件:openclaw plugins install @openclaw/line

LINE 快速设置

1

创建 LINE Messaging API 渠道

登录 LINE Developers Console,创建 Provider(或选择已有的),然后创建新的 Messaging API 渠道。记录你的 Channel ID、Channel secret,并从渠道设置页面签发 Channel access token。

2

安装 LINE 插件并添加配置

运行 'openclaw plugins install @openclaw/line' 安装 LINE 插件。然后在 ~/.openclaw/openclaw.json 中添加 LINE 渠道配置,填入你的 channelAccessToken 和 channelSecret。你也可以使用环境变量 LINE_CHANNEL_ACCESS_TOKEN 和 LINE_CHANNEL_SECRET。

3

配置 Webhook URL

在 LINE Developers Console 中,导航到渠道的 Messaging API 标签。将 Webhook URL 设置为 'https://<your-gateway-host>/line/webhook' 并启用 'Use webhook'。点击 Verify 确认端点可达。在 LINE Official Account Manager 中禁用自动回复和问候消息,以防止重复回复。

4

发送测试消息

通过扫描 LINE 机器人的二维码(可在 Console 中找到)将其添加为好友。向机器人发送一条消息。如果使用默认的 pairing 策略,需在终端通过 'openclaw pairing approve line <code>' 审批发送者。

LINE 配置示例

config.json
{
  "channels": {
    "line": {
      "enabled": true,
      "channelAccessToken": "YOUR_CHANNEL_ACCESS_TOKEN",
      "channelSecret": "YOUR_CHANNEL_SECRET",
      "dmPolicy": "pairing"
    }
  }
}

LINE 深入了解

架构概述

OpenClaw 通过官方 Messaging API 与 LINE 集成 —— 这是一种基于 Webhook 的架构,LINE 平台将事件(消息、关注、加入)推送到你的 Gateway,OpenClaw 通过 REST API 回复。 流程为:用户发送消息 → LINE 平台 → Webhook POST 到你的 Gateway → OpenClaw 用 AI 处理 → 通过 Messaging API 回复 → LINE 平台 → 用户收到回复。 与逆向工程协议不同,Messaging API 由 LINE Corporation 官方支持,提供稳定、有文档的端点,保证兼容性。OpenClaw 自动处理 Webhook 签名验证(使用你的 Channel secret 进行 HMAC-SHA256),确保所有传入事件的真实性。 LINE 插件通过 'openclaw plugins install @openclaw/line' 单独安装。这种模块化架构使核心 Gateway 保持轻量,同时允许 LINE 特定功能独立维护。
你的 Gateway 必须通过带有效 SSL 证书的公共 HTTPS URL 访问。LINE 的 Webhook 系统不接受自签名证书。
对于多账号设置,每个账号可以有自定义的 webhookPath,在同一个 Gateway 上通过不同端点接收事件。

LINE Developers Console 设置

设置 LINE 机器人需要在 LINE Developers Console 中创建正确的资源: 1. 创建 Provider —— 代表你或你的组织。一个 Provider 可以包含多个渠道。 2. 创建 Messaging API 渠道 —— 选择 Messaging API 类型(不是 LINE Login)。填写必要信息:渠道名称、描述、分类和子分类。 3. 签发 Channel access token —— 进入渠道设置的 Messaging API 标签,点击 'Issue' 生成长期有效的 Channel access token。此令牌用于验证 API 调用。 4. 记录 Channel secret —— 在 Basic Settings 标签中找到。用于 Webhook 签名验证。 5. 配置 Webhook —— 在 Messaging API 标签中,将 Webhook URL 设置为你 Gateway 的 LINE 端点并启用 'Use webhook'。 6. 禁用自动回复 —— 在 LINE Official Account Manager(从 Console 链接)中,关闭问候消息和自动回复,以防止与 AI 机器人冲突。 LINE 使用特定的 ID 格式:用户 ID 以 'U' 开头后跟 32 个十六进制字符,群组 ID 以 'C' 开头,聊天室 ID 以 'R' 开头。
openclaw.json
{
  "channels": {
    "line": {
      "channelAccessToken": "YOUR_TOKEN",
      "channelSecret": "YOUR_SECRET"
    }
  }
}
妥善保管你的 Channel secret 和 access token。切勿将它们提交到版本控制中。生产部署请使用环境变量(LINE_CHANNEL_ACCESS_TOKEN、LINE_CHANNEL_SECRET)或基于文件的令牌(tokenFile、secretFile)。

Channel Access Token

LINE 提供四种具有不同有效期和用途的 Channel access token: • 长期令牌 —— 不会过期。从 Console 签发。每个渠道只能存在一个;重新签发会使之前的令牌失效。对于自托管机器人来说是最简单的选择。 • 短期令牌 (v2.1) —— 最长 30 天过期。通过 API 使用 JWT 断言签发。每个渠道最多 30 个令牌。适用于需要令牌轮换的生产部署。 • 无状态令牌 —— 15 分钟过期。签发数量无限制。无法撤销。适用于需要极短令牌有效期的高安全场景。 • 短期令牌(旧版)—— 30 天过期。每个渠道最多 30 个;超过限制时最旧的令牌会被自动撤销。 OpenClaw 支持所有令牌类型。对于大多数自托管设置,长期令牌是最简单的选择。直接在配置中设置或通过 LINE_CHANNEL_ACCESS_TOKEN 环境变量配置。
对于需要令牌轮换的生产环境,使用 tokenFile 配置选项指向一个由外部令牌刷新进程更新的文件。
避免过于频繁地签发令牌 —— 如果在短时间内创建过多令牌,LINE 可能会暂时限制签发。

私信策略

私信(DM)策略控制谁可以与你的 LINE 机器人进行一对一聊天。OpenClaw 支持四种策略: • pairing(默认)—— 新用户给机器人发消息时会收到一个随机配对码。在终端通过 'openclaw pairing approve line <code>' 进行审批。审批通过后即可自由聊天。配对码在 1 小时后过期,最多允许 3 个待处理请求。 • allowlist —— 只有 allowFrom 中列出的 LINE 用户 ID 可以给机器人发消息。其他人将被静默忽略。LINE 用户 ID 格式为 'U' + 32 个十六进制字符。 • open —— 任何添加机器人为好友并发送消息的人都会收到回复。需要在 allowFrom 中添加 '*' 作为安全确认。 • disabled —— 完全关闭私信功能。 要获取用户的 LINE ID,可查看 Gateway 日志中发送消息时的记录 —— 每个 Webhook 事件都会记录来源 userId。
openclaw.json
{
  "channels": {
    "line": {
      "dmPolicy": "allowlist",
      "allowFrom": ["U1234567890abcdef1234567890abcdef"]
    }
  }
}
LINE 用户 ID 是按 Provider 唯一的 —— 同一个用户在不同 Provider 下有不同的 ID。确保你的 allowFrom ID 与正确的 Provider 匹配。
使用 'openclaw pairing list line' 查看所有待处理的配对请求及其配对码。

群聊管理

OpenClaw 支持 LINE 群聊和多人聊天,并提供可配置的访问控制: • disabled(默认)—— 忽略所有群组和聊天室消息 • open —— 回复所有群成员的消息 • allowlist —— 只有已批准的用户 ID(通过 groupAllowFrom)可以在群组中触发机器人 当 LINE 机器人加入群组时,会收到一个 'join' 事件。群聊对话与私信隔离 —— 每个群组维护独立的对话上下文和历史。 LINE 中的群组 ID 格式为 'C' + 32 个十六进制字符。聊天室 ID 格式为 'R' + 32 个十六进制字符。你可以在收到群消息时从 Gateway 日志中找到这些 ID。 注意:机器人必须由群成员邀请加入群组。LINE 机器人无法自行加入群组。
openclaw.json
{
  "channels": {
    "line": {
      "groupPolicy": "open",
      "historyLimit": 50
    }
  }
}

富消息:Flex 与模板

LINE 支持纯文本之外的富消息类型,OpenClaw 充分利用了这些功能: • Flex 消息 —— 使用 JSON 结构的高度可定制卡片布局。OpenClaw 会在可行时自动将 AI 回复中的代码块转换为 Flex 消息卡片。你也可以使用 '/card' 命令生成预设的 Flex 模板。 • 模板消息 —— 带有按钮、轮播、确认和图片轮播的结构化消息。适合向用户展示选项。 • 快捷回复 —— 消息下方最多显示 13 个操作按钮。支持消息操作、URI 操作、回调操作、日期时间选择器、相机/相册操作和位置操作。用户点击后快捷回复会消失。 • 贴图 —— LINE 的标志性功能。机器人可以通过指定 packageId 和 stickerId 发送官方贴图。只有 LINE 公布的可发送贴图列表中的贴图可通过 API 使用。 • 位置消息 —— 分享带有地址标签的经纬度坐标。 Markdown 格式会从 AI 回复中自动去除,因为 LINE 原生不支持。代码块会被转换为 Flex 卡片以提高可读性。
使用 LINE Flex Message Simulator(在 Console 中可用)在编码前设计和预览自定义 Flex 布局。
快捷回复仅在 iOS 和 Android 版 LINE 上支持 —— 在桌面端或网页端不会显示。

媒体与附件

OpenClaw 可处理 LINE 上的媒体文件,包括图片、视频、音频和文件。用户发送的媒体内容会被 Gateway 自动下载并处理。 入站媒体从 LINE 的内容 API 获取并传递给 AI 处理(例如图片分析)。默认最大文件大小为 10 MB(可通过 mediaMaxMb 配置)。 出站媒体通过 Messaging API 上传。LINE 支持: • 图片 —— JPEG 和 PNG,最大 10 MB • 视频 —— MP4,最大 200 MB(某些场景下限制 1 分钟) • 音频 —— M4A,最大 200 MB LINE 使用基于消息 ID 的内容检索 API —— 媒体内容不直接包含在 Webhook 载荷中,需要单独获取。OpenClaw 会自动处理此过程。
openclaw.json
{
  "channels": {
    "line": {
      "mediaMaxMb": 10
    }
  }
}

Webhook 安全

LINE 使用 HMAC-SHA256 签名验证来确保 Webhook 事件的真实性。每个 Webhook 请求都包含一个 'x-line-signature' 头,其中包含使用 Channel secret 作为密钥对请求体计算的 Base64 编码 HMAC-SHA256 摘要。 OpenClaw 会自动验证每个传入 Webhook 事件的签名。如果验证失败,事件将以 403 状态被拒绝。这可以防止伪造或篡改的事件被处理。 重要提示:签名是对原始请求体字符串计算的。在验证之前不要解析、反序列化或重新格式化 JSON。OpenClaw 会正确处理此过程 —— 只需确保你的反向代理或负载均衡器在请求到达 Gateway 之前不修改请求体。
如果 Webhook 验证持续失败,请仔细检查 channelSecret 是否与 LINE Developers Console(Basic Settings 标签)中的值匹配。
使用 Console 中的 'Verify' 按钮测试你的 Webhook 端点。它会发送一个包含空 events 数组的测试事件。

加载指示器与消息发送

OpenClaw 在生成 AI 回复时发送加载指示器(输入动画)。LINE 的加载指示器 API 会在聊天中显示最多 60 秒的加载动画,为用户提供机器人正在处理的视觉反馈。 对于较长的 AI 回复,文本会自动在每条消息 5,000 个字符处分块(LINE 的消息大小限制)。分块对用户是透明的 —— 他们会收到多条连续的消息。 流式传输会缓冲到完成 —— LINE 不像某些其他平台那样支持流式消息发送。完整回复先生成,然后作为一条或多条消息发送。 LINE 的 Messaging API 支持在单次回复中发送最多 5 个消息对象。OpenClaw 会在可能的情况下将短消息合并发送以优化传输。
openclaw.json
{
  "channels": {
    "line": {
      "textChunkLimit": 5000,
      "chunkMode": "newline"
    }
  }
}

多账号设置

OpenClaw 支持在单个 Gateway 实例上运行多个 LINE 机器人账号。每个账号有自己的凭证、Webhook 路径和配置覆盖。 这适用于在不同 LINE 账号上运行不同的 AI 角色,或在同一基础设施上分离生产和测试机器人。 每个账号在自己的路径接收 Webhook 事件:/line/<accountId>/webhook(而非默认的 /line/webhook)。在每个账号的 LINE Developers Console 中配置相应的 Webhook URL。
openclaw.json
{
  "channels": {
    "line": {
      "accounts": {
        "main": {
          "channelAccessToken": "TOKEN_1",
          "channelSecret": "SECRET_1",
          "webhookPath": "/line/main/webhook"
        },
        "support": {
          "channelAccessToken": "TOKEN_2",
          "channelSecret": "SECRET_2",
          "webhookPath": "/line/support/webhook"
        }
      }
    }
  }
}

LINE 配置参考

enabled
Type: booleanDefault: true

启用或禁用 LINE 渠道

channelAccessToken
Type: stringDefault: ""

LINE Messaging API 的 Channel access token。也可使用 LINE_CHANNEL_ACCESS_TOKEN 环境变量

channelSecret
Type: stringDefault: ""

用于 Webhook 签名验证的 LINE Channel secret。也可使用 LINE_CHANNEL_SECRET 环境变量

tokenFile
Type: stringDefault: ""

包含 Channel access token 的文件路径(替代内联配置)

secretFile
Type: stringDefault: ""

包含 Channel secret 的文件路径(替代内联配置)

dmPolicy
Type: stringDefault: "pairing"

控制谁可以私信机器人。选项:pairing、allowlist、open、disabled

allowFrom
Type: string[]Default: []

dmPolicy 为 allowlist 时允许给机器人发消息的 LINE 用户 ID(U + 32 位十六进制)

dmHistoryLimit
Type: numberDefault: 50

每个对话中包含的最近私信消息数量,作为 AI 上下文

groupPolicy
Type: stringDefault: "disabled"

群聊策略。选项:disabled、allowlist、open

groupAllowFrom
Type: string[]Default: []

允许在群组中触发机器人的 LINE 用户 ID(groupPolicy 为 allowlist 时使用)

historyLimit
Type: numberDefault: 50

包含的最大群消息数量,作为 AI 上下文。设为 0 禁用

textChunkLimit
Type: numberDefault: 5000

分块前每条出站消息的最大字符数

chunkMode
Type: stringDefault: "length"

文本分块模式。选项:length(硬性拆分)、newline(段落感知)

mediaMaxMb
Type: numberDefault: 10

最大入站媒体文件大小(兆字节)

webhookPath
Type: stringDefault: "/line/webhook"

此账号的自定义 Webhook 路径(适用于多账号设置)

accounts.<id>.channelAccessToken
Type: stringDefault: ""

多账号设置中每个账号的 Channel access token

accounts.<id>.channelSecret
Type: stringDefault: ""

多账号设置中每个账号的 Channel secret

accounts.<id>.webhookPath
Type: stringDefault: "/line/<id>/webhook"

多账号设置中每个账号的 Webhook 路径

configWrites
Type: booleanDefault: true

允许 /config 命令在运行时修改渠道设置

LINE 常见问题

LINE 故障排查

LINE Console 中 Webhook 验证失败

Gateway 无法从互联网访问,URL 不正确,或 SSL 证书有问题。

确认 Gateway 正在运行并可通过公共 URL 访问。确保 URL 格式为 'https://<host>/line/webhook',并使用有效的 SSL 证书(非自签名)。检查防火墙规则和端口转发。从外部机器用 'curl -X POST https://<host>/line/webhook' 进行测试。
机器人已被添加为好友但不响应消息

Console 中未启用 Webhook,自动回复在干扰,或发送者尚未通过 pairing 策略审批。

在 LINE Developers Console 中,确认 Messaging API 标签下的 'Use webhook' 已启用。在 LINE Official Account Manager 中,禁用自动回复和问候消息。如果使用 pairing 策略,通过 'openclaw pairing list line' 检查待处理的配对并审批发送者。
发送回复时出现 401 Unauthorized 错误

Channel access token 无效、已过期或已被撤销。

前往 LINE Developers Console,导航到渠道的 Messaging API 标签,签发新的 Channel access token。使用新令牌更新 OpenClaw 配置或 LINE_CHANNEL_ACCESS_TOKEN 环境变量。如果使用令牌轮换,请验证刷新流程是否正常工作。
消息已接收但回复显示 'Invalid reply token'

LINE 回复令牌在 Webhook 事件发送后 1 分钟过期。如果 AI 处理时间更长,令牌将失效。

这是 LINE 平台的限制。当回复令牌过期时,OpenClaw 会使用推送消息作为后备方案。确保你的 channelAccessToken 具有推送消息权限,并且未超出月度推送消息配额。
传入 Webhook 的签名验证错误

配置中的 channelSecret 与 LINE Developers Console 中的 Channel secret 不匹配,或反向代理修改了请求体。

仔细检查 channelSecret 值是否与 LINE Developers Console 的 Basic Settings 标签中显示的 'Channel secret' 匹配。如果使用反向代理(nginx、Apache),确保它原样转发请求体不做修改。检查 Content-Type 是否保持为 application/json。