使用 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。