LINE 接入——日本主流聊天应用
Hermes 消息平台接入第20篇:LINE。日韩用户最多的聊天平台。
這篇教學手把手教你,如何把 Hermes Agent 變成一個 LINE 機器人,讓日本、台灣和泰國的朋友能直接跟你聊天。
第 1 步:在 LINE 後台「領證」
先去 LINE Developers Console 註冊一個 Messaging API 頻道(相當於給你的機器人辦個「身分證」)。辦完後,你會拿到兩樣東西:
- Channel secret(在 Basic settings 頁)—— 相當於機器人的「密碼」。
- Channel access token(在 Messaging API 頁,點 Issue 產生)—— 相當於機器人的「門禁卡」。
記得順手關掉 Messaging API 頁裡的「自動回覆」和「問候語」開關,不然它們會跟你的機器人搶著回話。
第 2 步:給機器人開一扇「公共大門」
LINE 需要從公網存取你的機器人,所以得用隧道工具把本機連接埠暴露出去。預設連接埠是 8646,用 Cloudflare Tunnel 最穩(生產環境推薦,位址固定):
cloudflared tunnel --url http://localhost:8646
測試階段用 ngrok 也行:
ngrok http 8646
跑起來後,複製那個 https://... 的位址,隧道別關,後面要用。
第 3 步:告訴 Hermes 你的「門禁卡」
編輯 ~/.hermes/.env 檔案,填上剛才拿到的「密碼」和「門禁卡」:
LINE_CHANNEL_ACCESS_TOKEN=你的長令牌
LINE_CHANNEL_SECRET=你的頻道金鑰
# 允許誰來找你(至少填一個,或者開發時用 LINE_ALLOW_ALL_USERS=true)
LINE_ALLOWED_USERS=U開頭的使用者ID
LINE_ALLOWED_GROUPS=C開頭的群ID
LINE_ALLOWED_ROOMS=R開頭的房間ID
# 發圖片/語音/影片必須填這個(就是第2步那個公網位址)
LINE_PUBLIC_URL=https://你的隧道位址
然後在 ~/.hermes/config.yaml 裡啟用 LINE:
gateway:
platforms:
line:
enabled: true
第 4 步:把「門牌號碼」告訴 LINE
回到 LINE 後台,在 Messaging API 頁的 Webhook URL 裡貼上:
https://<你的隧道位址>/line/webhook
點 Verify 驗證,看到 200 就對了,然後把 Use webhook 開關打開。
第 5 步:啟動機器人
hermes gateway
看到日誌裡出現 LINE: webhook listening... 就成功了。用 LINE 掃一下頻道裡的 QR Code 加好友,發條訊息試試吧!
小技巧:機器人「想太久」怎麼辦?
LINE 的免費回覆令牌只有 60 秒有效期,如果 AI 想太久就過期了。Hermes 有個聰明辦法:45 秒後自動發一個「還在思考」的按鈕,使用者點一下按鈕,就能用新令牌拿到答案,全程免費。如果不想用按鈕,直接設 LINE_SLOW_RESPONSE_THRESHOLD=0 強制走付費通道。
常見坑
- 驗證報 invalid signature:多半是 Channel secret 抄錯了,或者隧道改寫了請求體。先存取
https://<隧道>/line/webhook/health看看是否回傳{"status":"ok"}。 - 群裡沒反應:檢查
LINE_ALLOWED_GROUPS有沒有填對群 ID。去日誌裡搜尋rejecting unauthorized source就能看到被拒的 ID。 - 發不出圖片:LINE 不收二進位檔案,必須填
LINE_PUBLIC_URL,讓機器人自己託管檔案。
總結
把 Hermes 接入 LINE 就五步:註冊頻道 → 開隧道 → 填設定 → 設 Webhook → 啟動。最難的部分(簽章驗證、令牌過期)框架都幫你處理好了,你只需要填對幾個參數。
下篇預告:搞定 LINE 之後,下一篇我們聊聊怎麼接入 Discord——遊戲玩家和開發者的大本營,讓機器人進伺服器當管理員!
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/line