前言
LINE 是日本、泰国、台湾等地区最主流的即时通讯应用。通过将 OpenClaw 连接到 LINE,你可以创建一个智能聊天机器人,自动回复好友消息或在群组中提供 AI 服务。本文将从 LINE Developers 控制台的配置开始,一步步完成整个接入过程。
前置条件
- OpenClaw 已安装并正常运行
- 拥有 LINE 账号
- OpenClaw 服务可通过公网 HTTPS 地址访问(LINE Webhook 要求 HTTPS)
第一步:创建 LINE Messaging API 频道
1.1 注册 LINE Developers 账号
- 访问 LINE Developers
- 使用 LINE 账号登录
- 如果是首次登录,需要同意开发者协议并创建 Provider
1.2 创建 Provider
Provider 是管理频道(Channel)的顶级组织单位:
- 在 LINE Developers Console 中,点击 Create a new provider
- 输入 Provider 名称(例如 "My OpenClaw Bot")
- 点击 Create
1.3 创建 Messaging API Channel
- 在 Provider 页面,点击 Create a Messaging API channel
- 填写以下信息:
| 字段 | 说明 | 示例 |
|---|---|---|
| Channel type | 选择 Messaging API | Messaging API |
| Channel name | 机器人显示名称 | AI 助手 |
| Channel description | 机器人描述 | 基于 OpenClaw 的智能助手 |
| Category | 选择一个类别 | 工具/实用程序 |
| Subcategory | 选择子类别 | 聊天机器人 |
| Email address | 联系邮箱 | [email protected] |
- 勾选同意条款,点击 Create
1.4 获取必要凭据
创建完成后,你需要记录两个关键信息:
Channel Secret:在 Basic settings 标签页中找到。
Channel Access Token:
- 进入 Messaging API 标签页
- 滚动到底部 Channel access token 区域
- 点击 Issue 按钮生成长期 Token
- 复制并妥善保存
Channel Secret: abc123def456ghi789jkl012
Channel Access Token: eyJhbGciOiJIUzI1NiJ9.xxxxx.xxxxx(很长的字符串)
第二步:配置 Webhook
2.1 设置 Webhook URL
在 Messaging API 标签页中:
- 找到 Webhook settings 区域
- 点击 Edit 按钮
- 输入你的 Webhook URL:
https://your-domain.com/webhook/line
- 点击 Update
- 开启 Use webhook 开关
2.2 验证 Webhook
点击 Verify 按钮测试 Webhook 连接。如果 OpenClaw 已经配置好并运行中,应该会显示 Success。
2.3 关闭自动回复
在 Messaging API 标签页中:
- 找到 LINE Official Account features 区域
- 点击 Auto-reply messages 旁边的 Edit 链接
- 进入 LINE Official Account Manager
- 关闭 自动应答消息(否则会和 OpenClaw 的回复冲突)
- 同时关闭 问候消息(可选,也可以保留 LINE 的默认问候)
第三步:配置 OpenClaw
3.1 配置文件方式
编辑 ~/.config/openclaw/openclaw.json5:
{
channels: {
line: {
enabled: true,
// Channel Secret(从 Basic settings 获取)
channelSecret: "abc123def456ghi789jkl012",
// Channel Access Token(从 Messaging API 生成)
channelAccessToken: "eyJhbGciOiJIUzI1NiJ9.xxxxx.xxxxx",
// Webhook 路径(需要和 LINE 控制台设置一致)
webhookPath: "/webhook/line",
// 消息处理配置
message: {
// 回复方式: "reply" 使用 Reply API (免费), "push" 使用 Push API (可能收费)
replyMode: "reply",
// 是否支持群组消息
groupEnabled: true,
// 群组中的触发方式
groupTrigger: "mention", // "mention" | "keyword" | "all"
// 群组触发关键词(groupTrigger 为 "keyword" 时生效)
groupKeywords: ["@AI", "/ask"]
},
// 回复格式
reply: {
// 长消息自动分割
maxLength: 5000,
// 是否使用 Flex Message 格式(更美观)
useFlexMessage: false,
// 发送消息前的等待提示
loadingAnimation: true
}
}
}
}
3.2 环境变量方式
export LINE_CHANNEL_SECRET="abc123def456ghi789jkl012"
export LINE_CHANNEL_ACCESS_TOKEN="eyJhbGciOiJIUzI1NiJ9.xxxxx.xxxxx"
3.3 重启并验证
openclaw restart
# 查看连接日志
openclaw logs -f --component channel:line
成功日志:
[INFO] [channel:line] LINE Messaging API 频道已启动
[INFO] [channel:line] Webhook 路径: /webhook/line
[INFO] [channel:line] Bot 名称: AI 助手
[INFO] [channel:line] 等待接收消息...
Reply API 与 Push API
LINE 有两种发送消息的 API,理解它们的区别很重要:
Reply API
- 触发方式:只能在收到用户消息后使用
- 时间限制:Reply Token 有效期约 30 秒
- 费用:完全免费
- 限制:每个事件只能回复一次
Push API
- 触发方式:可以主动向用户发送消息
- 时间限制:无限制
- 费用:免费计划每月 200 条,超出需付费
- 限制:取决于订阅计划
{
channels: {
line: {
message: {
// 推荐使用 reply 模式节省费用
replyMode: "reply",
// 如果需要发送延迟回复(如处理耗时任务),可以启用 push 作为降级
fallbackToPush: true
}
}
}
}
消息配额
| 计划 | Push API 消息数/月 | 费用 |
|---|---|---|
| Free | 200 条 | 免费 |
| Light | 5,000 条 | 约 800 TWD/月 |
| Standard | 25,000 条 | 约 4,000 TWD/月 |
| Pro | 自定义 | 联系 LINE |
Reply API 的消息不计入配额,因此推荐优先使用 Reply 模式。
Rich Menu 配置
Rich Menu 是 LINE Bot 底部的自定义菜单,可以提供快捷操作入口。
创建 Rich Menu
在 LINE Official Account Manager 中创建:
- 进入 聊天 → 图文选单
- 点击 创建
- 设计菜单布局,常见选项:
┌─────────┬─────────┬─────────┐
│ │ │ │
│ 提问 │ 翻译 │ 总结 │
│ │ │ │
├─────────┼─────────┼─────────┤
│ │ │ │
│ 重置 │ 模型 │ 帮助 │
│ │ │ │
└─────────┴─────────┴─────────┘
- 为每个区域设置动作类型为 文字,填入对应的触发命令
通过 API 创建 Rich Menu
也可以在 OpenClaw 配置中定义 Rich Menu:
{
channels: {
line: {
richMenu: {
enabled: true,
areas: [
{ label: "提问", action: "/ask" },
{ label: "翻译", action: "/translate" },
{ label: "总结", action: "/summarize" },
{ label: "重置对话", action: "/reset" },
{ label: "切换模型", action: "/model" },
{ label: "帮助", action: "/help" }
]
}
}
}
}
群组使用
将 Bot 添加到群组
- 在 LINE 中打开群组
- 点击群组设置 → 邀请
- 搜索并添加你的 Bot
群组行为配置
{
channels: {
line: {
group: {
// 加入群组时的欢迎消息
welcomeMessage: "大家好,我是 AI 助手!@我或以 /ask 开头就可以向我提问。",
// 被移出群组时清理数据
cleanOnLeave: true,
// 每个群组独立的上下文
separateContext: true
}
}
}
}
HTTPS 要求
LINE Webhook 强制要求 HTTPS。如果你还没有配置 HTTPS,可以使用以下方式:
方式一:Nginx 反向代理 + Let's Encrypt
# 安装 certbot
sudo apt install certbot python3-certbot-nginx
# 获取证书
sudo certbot --nginx -d your-domain.com
方式二:ngrok 隧道(开发测试用)
# 安装 ngrok
npm install -g ngrok
# 创建隧道
ngrok http 18789
将 ngrok 生成的 HTTPS 地址填入 LINE Webhook URL。
方式三:Cloudflare Tunnel
cloudflared tunnel --url http://localhost:18789
故障排查
Webhook 验证失败
# 确认 OpenClaw 正在运行
openclaw logs --level error
# 确认 Webhook 路径正确
curl -X POST https://your-domain.com/webhook/line -d '{}' -H "Content-Type: application/json"
# 检查 SSL 证书是否有效
openssl s_client -connect your-domain.com:443
Bot 不回复消息
# 检查 Channel Access Token 是否有效
openclaw logs --component channel:line --level debug
# 常见原因:
# 1. Token 已过期 - 重新 Issue 新 Token
# 2. 自动回复未关闭 - LINE 的自动回复会吃掉 Reply Token
# 3. Reply Token 超时 - AI 模型响应太慢(>30秒)
Reply Token 超时
如果 AI 模型响应时间超过 30 秒,Reply Token 会过期。解决方案:
{
channels: {
line: {
message: {
replyMode: "reply",
fallbackToPush: true, // Reply 失败时改用 Push API
// 或者先发送一条"处理中"的回复
thinkingMessage: "正在思考中,请稍候..."
}
}
}
}
总结
LINE 集成的核心步骤:
- 在 LINE Developers 创建 Messaging API 频道
- 获取 Channel Secret 和 Channel Access Token
- 配置 HTTPS Webhook URL
- 在 OpenClaw 配置文件中填入凭据
- 关闭 LINE 的自动回复功能
- 重启服务并测试
建议优先使用 Reply API 节省费用,并通过 Rich Menu 提升用户体验。