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 扫一下频道里的二维码加好友,发条消息试试吧!
小技巧:机器人“想太久”怎么办?
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