Back to Lobehub

将 LobeHub 连接到 LINE

docs/usage/channels/line.zh-CN.mdx

2.1.5810.7 KB
Original Source

将 LobeHub 连接到 LINE

通过将 LINE 渠道连接到您的 LobeHub 代理,用户可以通过 LINE 私信、群组聊天以及多人聊天室与 AI 助手互动。集成使用官方的 LINE Messaging API,LINE 与 LobeHub 之间没有第三方中转。

前置条件

  • 一个拥有有效订阅的 LobeHub 账户
  • 一个 LINE Business ID(可用 LINE 账号或邮箱注册)
  • 一个 LINE Official Account(Messaging API channel 必须挂在 Official Account 下)

重要变化(2024-09-04 起): LINE 已不再允许直接在 LINE Developers Console 中创建 Messaging API channel。必须先建 LINE Official Account,再在 Official Account Manager 中启用 Messaging API,对应的 channel 才会在 Developers Console 中自动出现。

第一步:创建 LINE Official Account 并启用 Messaging API

<Steps> ### 创建 LINE Official Account

打开 entry.line.biz,用 LINE Business ID 登录,按表单填写账号名称、行业、地区等信息提交。完成后到 LINE Official Account Manager 确认账号已经出现在列表中。

在 Account Manager 中启用 Messaging API

进入这个 Official Account → Settings → Messaging API → 点击 Enable Messaging API。系统会让你:

  • 填写开发者信息(首次启用时)。
  • 选择一个 Provider(用来在 Developers Console 中分组 channel)—— 已有的可以复用,没有就新建一个,例如 "LobeHub"。

注意: Provider 一旦绑定就 不能修改。如果同时管理多个不相关业务,建议为每个业务用独立的 Provider。

在 Developers Console 中找到 channel

用同一个 LINE Business ID 登录 LINE Developers Console,选中刚才绑的 Provider,对应的 Messaging API channel 会自动出现。

记录 channel 的关键标识

打开 Basic settings 选项卡,复制 Channel secret —— 用于第四步校验 Webhook 签名。

注意: 同一选项卡里的 "Your user ID"你账号自己的 LINE user ID,不是 bot 的 destination user ID。两者格式完全一样(都以 U 开头共 33 位),但 LobeHub 需要的是 bot 的,会在第四步根据 Channel Access Token 自动解析。

然后切到 Messaging API 选项卡,记下:

  • Bot basic ID —— 用户搜索机器人时使用的 @xxxx 短 ID。 </Steps>

第二步:签发 Channel Access Token

<Steps> ### 打开 Messaging API 选项卡

滚到 Messaging API 选项卡底部的 Channel access token 区域。

签发长期 Token

在 "Channel access token (long-lived)" 处点击 Issue。立即复制 Token —— LINE 只展示一次。

重要提示: Channel Access Token 与 Channel Secret 都是敏感凭据,切勿提交到代码仓库或在截图中泄露。

</Steps>

第三步:关闭 LINE 自带的自动回复与欢迎语

LINE Official Account Manager 默认会自动回复用户消息并在第一次接触时发送欢迎语,会与 LobeHub 的回复发生冲突,需要关闭。

<Steps> ### 打开 LINE Official Account Manager

Messaging API 选项卡中,点击 LINE Official Account Manager 链接进入对应 Official Account 的管理界面。

切换 response 模式

打开 设置 → Messaging API(或 Response settings),调整为:

  • Greeting message: Disabled
  • Auto-response messages: Disabled
  • Webhooks: Enabled

这样所有入站消息都会交给你的机器人处理。 </Steps>

第四步:在 LobeHub 中配置 LINE

<Steps> ### 打开渠道设置

在 LobeHub 中,进入您的代理设置,选择 渠道 标签。在平台列表中点击 LINE

填写凭据

推荐顺序 —— 先粘贴 Token,LobeHub 会帮你自动填入 Destination User ID:

  1. Channel Access Token —— 粘贴第二步签发的长期 Token。
  2. Destination User ID —— 点击该字段旁的 从 LINE 获取 按钮。LobeHub 会用刚才填入的 Token 调用 GET /v2/bot/info,自动取出 bot 的 userId(以 U 开头共 33 位)并填入。如果你已经拿到这个值,也可以手动粘贴。
  3. Channel Secret —— 粘贴 Basic settings 选项卡的 Channel secret。

为什么需要自动获取? LINE Developers Console 界面不展示 bot 的 destination user ID,唯一的获取方式就是调用 /v2/bot/info从 LINE 获取 按钮会把这一步 curl 替你做掉。

<details> <summary>手动备选方案(按钮不可用时)</summary>
bash
curl -H "Authorization: Bearer <你的 channel access token>" \
  https://api.line.me/v2/bot/info

把返回 JSON 中的 userId 字段复制到 Destination User ID 即可。

</details>

保存配置

点击 保存配置。LobeHub 会加密您的凭据,调用一次 GET /v2/bot/info 验证 Token 可用、且返回的 bot user ID 与 Destination User ID 一致,并在凭据下方显示 Webhook URL 供下一步使用。

注意: 与 Telegram 不同,LINE Messaging API 不支持程序化注册 Webhook,LobeHub 无法替您在 LINE Developers Console 中填写 URL,需要您在第五步中自行粘贴。

</Steps>

第五步:在 LINE Developers Console 配置 Webhook

<Steps> ### 复制 Webhook URL

在 LobeHub 的 LINE 渠道详情页中,复制凭据区域下方显示的 Webhook URL。形如 https://app.lobehub.com/api/agent/webhooks/line/<your-destination-user-id>

粘贴到 LINE Developers Console

回到 channel 的 Messaging API 选项卡:

  • Webhook URL: 粘贴 LobeHub 的 Webhook URL。
  • 点击 Update
  • 点击 Verify。LINE 会向 LobeHub 发送一个签名后的 POSTevents: []),Channel Secret 匹配时 LobeHub 返回 200。
  • Use webhook 切到 ON </Steps>

第六步:测试连接

<Steps> ### 添加机器人为好友

在 LINE Developers Console 的 Messaging API 选项卡,使用手机扫描机器人的 QR code;也可以直接在 LINE 中搜索 Bot basic ID(例如 @abc1234x)。

发送一条真实消息

在 LINE 里向机器人发送任意消息。几秒内 LobeHub 代理就会回复。

运行测试连接(可选)

在 LobeHub 渠道设置中点击 测试连接,再次校验 Token 与 bot 身份是否匹配,错误信息会透传 LINE 返回的具体内容。 </Steps>

在群聊中使用机器人

要在 LINE 群聊或多人聊天室使用机器人:

  1. 先按第六步将机器人加为好友。
  2. 创建群组或聊天室并邀请机器人;也可以从机器人个人页(...Invite)邀请到已存在的群组。
  3. 在群里 @ 机器人或直接发送消息,机器人会在群组或聊天室中回复。

注意: 允许机器人加入群组与聊天室需要在 LINE Official Account Manager 的 Response settings 中启用 "Allow bot to join group chats",默认是关闭的。

配置参考

字段是否必需描述
Destination User ID机器人的用户 ID(U + 32 位十六进制)。LobeHub 会通过 从 LINE 获取 按钮(背后调用 GET /v2/bot/info)自动填入;LINE Developers Console 界面不展示这个值。同时作为机器人标识与 Webhook 路径。
Channel Access TokenMessaging API 选项卡中签发的长期 Token,用作每个 LINE API 调用的 bearer 头。
Channel SecretBasic settings 选项卡中的 Channel secret,用于校验每条入站 Webhook 的 X-Line-Signature

能力说明

LINE Messaging API 有一些平台层面的限制,LobeHub 的对接行为如下:

  • Markdown —— LINE 文本消息按 纯文本 渲染。LobeHub 在发送前会通过 stripMarkdown 去掉强调、标题、列表等标记。
  • 消息编辑 —— Messaging API 不支持编辑已发送消息,因此 LobeHub 只发送 最终回复,不会逐步刷新中间进度。
  • 输入提示动画 —— 仅对 1:1 用户聊天有效,群组与多人聊天室静默 no-op。
  • 表情反应 —— LINE 机器人当前不能发送消息反应,Discord/Slack 上使用的 👀 / ✏️ 状态反应不会显示。
  • 出站 —— LobeHub 使用 push API/v2/bot/message/push)而非 reply API,因为 reply token 60 秒就过期,而 agent 生成回复可能更慢。Push 消息会消耗付费方案的月度配额,免费的 Developer Trial 实际不限量。
  • 附件 —— 入站的图片、视频、音频、文件会按需通过 LINE 数据子域下载并送给模型;出站消息当前仅支持文本。

故障排除

  • LINE Developers Console 的 "Verify" 失败。 LobeHub 中的 Channel Secret 必须与 Basic settings 选项卡显示的值完全一致。重新粘贴、保存后再试。
  • 保存或测试连接时出现 Authentication failed. Channel Access Token 失效或被撤销。在 Messaging API 选项卡里重新签发长期 Token,并把新值粘贴到 LobeHub。
  • Channel access token belongs to bot Uxxx, not Uyyy Destination User ID 与 Token 不匹配。最简方式:清空字段后点击 从 LINE 获取,让 LobeHub 重新拉到正确的 userId。错误消息里的 Uxxx 也是 Token 实际归属的 bot userId,直接复制粘贴也可以。(手动核对:curl -H "Authorization: Bearer <token>" https://api.line.me/v2/bot/info。)
  • Webhook 投递返回 401 Invalid signature LobeHub 中的 Channel Secret 与 LINE 的不一致,更新为正确的 Channel Secret。
  • 机器人不回复。 请依次确认:
    1. Messaging API 选项卡中的 Use webhook 已切到 ON
    2. LINE Official Account Manager 中的 Auto-response messagesGreeting message 都已禁用。
    3. 用户已经把机器人加为好友(非好友消息 LINE 不会推送)。
  • 群聊中机器人不回复。 确认 LINE Official Account Manager 的 Response settings 中已启用 "Allow bot to join group chats",然后将机器人重新邀请进群组。