使用 Minara客户端与界面消息平台
LINE
通过 LINE Messaging API 实现出站推送消息及签名 webhook 事件。适合日本和台湾的运营者。
🟡 出站就绪,仅支持推送。 Minara 使用 LINE 的 push API(按月计费)。Reply token(免费)暂未接入,因此每条出站消息都计入套餐配额。入站 webhook 事件已完全支持,并通过 HMAC-SHA256 签名验证。
功能说明
- 推送消息,通过
POST /v2/bot/message/push发送至 userId、groupId 或 roomId。 - 入站 webhook,路径为
/webhooks/line,使用X-Line-Signature对原始请求体进行 HMAC-SHA256 验证,符合 LINE 官方规范。 - 本版本仅支持文本,图片、贴纸、视频等附件为后续功能。
- 单条文本消息上限 5000 字符。
send_message在工具边界处自动截断超长内容。
配置步骤
1. 创建 LINE 频道
- 前往 LINE Developers Console
- 创建一个 Provider,再在其中创建一个 Messaging API 频道
- 在频道页面获取 Channel access token(长期有效,若为空则点击"Issue"生成)和 Channel secret
2. 获取用户或群组 ID
用户将 bot 添加为好友后,webhook 会收到一个 follow 事件,其中包含该用户的 userId(格式为 U... 的不透明字符串)。群组 ID 可在群内发送消息后,从入站 payload 中读取 groupId。目前没有自助方式导出所有联系人,需在首次交互时手动捕获 ID。
3. 配置 Minara
最快的方式是使用交互菜单:
minara auth messaging add
# 从列表中选择 `line`,按提示粘贴 access token、channel secret
# 以及默认的 userId / groupId也可以直接在项目根目录的 .env 文件中设置环境变量:
LINE_CHANNEL_ACCESS_TOKEN=<长期 bearer token>
LINE_CHANNEL_SECRET=<签名密钥>
LINE_DEFAULT_USER_ID=<默认 Uxxxxxxxxxxxxxx>4. 测试
minara auth messaging test linebot 账号应在数秒内收到"✅ Minara gateway test ping"。
入站 webhook
在 LINE 频道中将 webhook 地址配置为:
https://<your-host>/webhooks/lineLINE 使用 LINE_CHANNEL_SECRET 对每个 webhook 请求体的原始字节进行 HMAC-SHA256 签名,签名放在 X-Line-Signature 请求头中。Minara 在解析请求体前先验证签名;若验证失败,返回 401,该请求不会转发给 Agent。
目前已接受的入站 webhook 事件类型:message.type === "text" 的 message 事件。贴纸、媒体、follow/unfollow 等其他类型一律忽略。
限制与注意事项
- Push API 按月计费。 开发者试用套餐每月推送上限为 500 条;付费套餐上限更高。生产环境告警请节约使用。
- Reply token 免费但暂未接入。 后续版本将支持通过
replyToken回复(需在入站消息后 30 秒内),不占用推送配额。 - 文本上限 5000 字符。 超出部分会被截断。
故障排查
"测试消息未收到"
- 确认 bot 已被目标账号添加为好友(或已加入群组)
- 检查
LINE_DEFAULT_USER_ID格式,开头的U不可缺少 - 查看
~/.minara/logs/中来自api.line.me的 HTTP 4xx 响应
"入站 webhook 返回 401"
- 环境变量中的
LINE_CHANNEL_SECRET与 LINE 控制台中的 channel secret 不匹配 - 签名是对原始请求体计算的,检查反向代理或 CDN 是否修改了请求字节
"Push API 返回 429"
- 当月推送配额已耗尽。升级套餐,或对非告警消息改用 reply token。