Back to Lobehub

将 LobeHub 连接到 Lark

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

2.2.1011.1 KB
Original Source

将 LobeHub 连接到 Lark

通过将 Lark 渠道连接到您的 LobeHub 代理,团队成员可以直接在 Lark 的私聊和群组对话中与 AI 助手互动。

如果您使用的是中国版(飞书),请参阅飞书设置指南

前置条件

  • 一个拥有有效订阅的 LobeHub 账户
  • 一个拥有创建企业应用权限的 Lark 账户

连接模式

LobeHub 支持两种 Lark 机器人连接模式:

  • WebSocket(推荐) — 使用 Lark 官方的长连接客户端建立持久连接。事件实时推送,无需配置公网可访问的 Webhook 地址,即使没有公网服务器也能开箱即用。这是新机器人的默认模式。
  • Webhook — 基于事件订阅 URL 的 HTTP 回调。如果您倾向于无状态的回调方式,或应用已在 Lark 开放平台配置了事件订阅 URL,可使用此模式。

注意: 下文第四步中在 Lark 开放平台配置 Event Subscription URL 的步骤仅适用于 Webhook 模式。如果您使用默认的 WebSocket 模式,请跳过这些步骤。

第一步:创建 Lark 应用

<Steps> ### 打开开发者门户

访问 open.larksuite.com/app 并使用您的账户登录。

创建企业应用

点击 Create Enterprise App。填写应用名称(例如 "LobeHub Assistant")、描述和图标,然后提交表单。

复制应用凭证

进入 Credentials & Basic Info,复制以下内容:

  • App ID(格式:cli_xxx
  • App Secret

重要提示: 请妥善保管您的 App Secret。切勿公开分享。

</Steps>

第二步:配置应用权限和机器人功能

<Steps> ### 导入所需权限

在您的应用设置中,进入 Permissions & Scopes,点击 Batch Import,然后粘贴以下 JSON 以授予机器人所需的所有权限。

json
{
  "scopes": {
    "tenant": [
      "application:application.app_message_stats.overview:readonly",
      "application:application:self_manage",
      "application:bot.menu:write",
      "cardkit:card:read",
      "cardkit:card:write",
      "contact:user.employee_id:readonly",
      "event:ip_list",
      "im:chat.members:bot_access",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.p2p_msg:readonly",
      "im:message:readonly",
      "im:message:send_as_bot",
      "im:resource"
    ],
    "user": []
  }
}

<Callout type={'info'}> 以上权限码已针对 Lark(国际版)进行调整。部分飞书特有的权限码(如 aily:*corehr:*im:chat.access_event.bot_p2p_chat:read)在 Lark 上不可用,已被排除。 </Callout>

启用机器人功能

进入 App CapabilityBot。开启机器人功能并设置您喜欢的机器人名称。 </Steps>

第三步:在 LobeHub 中配置 Lark

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

在 LobeHub 中,导航到您的代理设置,然后选择 渠道 标签。点击平台列表中的 Lark

填写应用凭证

输入以下字段:

  • App ID — 来自 Lark 应用的 App ID
  • App Secret — 来自 Lark 应用的 App Secret

选择连接模式

Advanced Settings 中,选择 Connection Mode

  • WebSocket(默认)— 推荐新机器人使用,可直接跳到第五步。
  • Webhook — 适用于已在 Lark 开放平台配置了 Event Subscription URL 的应用,请继续下面的步骤。

此时您不需要填写 Verification TokenEncrypt Key —— 可以在完成第四步(仅 Webhook 模式需要)配置事件订阅后再设置。

保存配置(仅 Webhook 模式)

点击 Save Configuration。在 Webhook 模式 下,保存后将显示一个 Event Subscription URL,复制此 URL —— 您将在下一步中需要它。在 WebSocket 模式 下,机器人会自动连接,不会生成该 URL。

</Steps>

第四步:在 Lark 中设置事件订阅(仅 Webhook 模式)

如果您使用的是 WebSocket 模式(默认),请跳过此步骤。

<Steps> ### 打开事件订阅设置

返回 Lark 开发者门户中的应用。导航到 Event Subscription

配置请求 URL

将您从 LobeHub 复制的 Event Subscription URL 粘贴到 Request URL 字段中。平台会自动验证端点。

添加消息事件

添加以下事件:

  • im.message.receive_v1 — 当收到消息时触发

这将使您的应用能够接收消息并将其转发到 LobeHub。

(推荐)填写 Verification Token 和 Encrypt Key

配置事件订阅后,您可以在事件订阅页面顶部的 Encryption Strategy 中找到 Verification TokenEncrypt Key

返回 LobeHub 的渠道设置,填写:

  • Verification Token — 用于验证 webhook 事件是否来自 Lark
  • Encrypt Key(可选)— 用于解密加密事件负载

再次点击 Save Configuration 以应用。

</Steps>

第五步:发布应用

<Steps> ### 创建版本

在您的应用设置中,进入 Version Management & Release。创建一个新版本并填写发布说明。

提交审核

提交版本进行审核并发布。对于企业自管理应用,通常会自动批准。

</Steps>

第六步:测试连接

回到 LobeHub 的渠道设置,点击 Test Connection 以验证凭证。然后在 Lark 中搜索您的机器人名称并发送消息,确认其是否响应。

第七步:填写你的平台身份(推荐)

高级设置里有一个可选字段影响日常使用体验,建议一开始就填好。

你的平台用户 ID

也就是你自己的 Lark open_id(按应用、按用户隔离的标识符 ——不是手机号或邮箱),用于:

  • 配对审批 — 当 私信策略配对审批 时为必填项,/approve <code> 是属主命令,runtime 会用这个 ID 校验发起人。
  • AI 工具主动推送 — 让 Agent 能主动联系你(提醒、通知),把内部用户引用映射到你的 Lark 账号。
  • 防自锁 — 自动被 允许的用户 信任,给同事收紧 bot 时不会把自己挡在外面。

获取方式:先用任意消息私信 bot 一次,查看入站事件 payload 中发送方的 open_id 字段,那就是你的。Lark 开发者后台也提供 User ID 查询 工具,用手机号 / 邮箱反查 open_id。粘贴到 LobeHub 高级设置的 你的平台用户 ID 字段。

Lark 没有一个 AI 工具能默认指向的 "默认服务器" 概念(bot 通过凭证按租户运行),因此 Lark 渠道不展示 默认服务器 字段。

接入策略

两个独立的策略控制入站消息,默认都为 开放

允许的用户 ID(全局)

填入 允许的用户 ID 后,所有入站消息(私信和群聊 @提及)都必须来自列表里的 Lark open_id。留空则不做用户级过滤。open_id 可从事件 payload 读取,或在 Lark 开发者后台查看 User ID

私信策略

  • 开放 (Open)(默认) — 租户内任何成员都可以私信机器人(若设置了全局白名单则受其约束)。
  • 白名单 (Allowlist) — 私信需要发送者在 允许的用户 ID 里。和 Open 的差别在白名单为空时:Allowlist 模式全部拒绝
  • 配对审批 (Pairing) — 与 Allowlist 共享同一份名单,但非名单用户被拒后会收到一次性配对码,由你(属主)通过 /approve <code> 审批。审批通过的用户会被自动追加到 允许的用户 ID,后续 DM 直通。需先填 你的平台用户 ID(runtime 用它校验 /approve 发起人),并需要部署 Redis。
  • 禁用 (Disabled) — 机器人忽略所有私信,只在群聊里被 @提及 时回复。

群组策略

控制机器人会在哪些 Lark 群里响应。

  • 开放 (Open)(默认) — 在机器人加入的任何群里被 @ 都响应。
  • 白名单 (Allowlist) — 只在 允许的频道 ID 列出的会话里响应(使用事件 payload 里的 chat_id)。
  • 禁用 (Disabled) — 忽略所有群聊流量,机器人只接受私信。

跨平台细节见 渠道概览

配置参考

字段是否必需描述
App ID您的 Lark 应用的 App ID(cli_xxx
App Secret您的 Lark 应用的 App Secret
Connection Modewebsocket(默认)或 webhook,根据应用是否能接收公网 Webhook 请求来选择
Verification Token验证 webhook 事件来源(推荐)
Encrypt Key解密加密事件负载(仅 Webhook 模式使用)
Event Subscription URLWebhook 模式下保存后自动生成;粘贴到 Lark 开发者门户
允许的用户 ID逗号或空格分隔的 Lark open_id。全局闸门 — 私信和群聊 @ 都受其约束
私信策略open(默认)、allowlistpairingdisabled — 控制谁可以私信机器人
群组策略open(默认)、allowlistdisabled — 控制机器人在哪些群中响应
允许的频道 ID逗号或空格分隔的 Lark chat_id。仅在群组策略为白名单时使用

故障排除

  • 机器人无法连接(WebSocket 模式): 验证 App ID 和 App Secret 是否正确,并确认机器人功能已启用且已注册 im.message.receive_v1 事件。
  • Event Subscription URL 验证失败(Webhook 模式): 确保您已在 LobeHub 中保存配置,并正确复制了 URL。
  • 机器人未响应: 验证应用已发布并获得批准,机器人功能已启用,并订阅了 im.message.receive_v1 事件。
  • 机器人不回私信: 在 LobeHub 的 高级设置 检查 私信策略。如果是 Disabled,改成 OpenAllowlist;如果是 Allowlist,确认发起方的 open_id 已加入 允许的用户 ID
  • 权限错误: 确保所有所需权限已在开发者门户中添加并获得批准。
  • 测试连接失败: 仔细检查 App ID 和 App Secret。确保您在 LobeHub 的渠道设置中选择了 "Lark"(而不是 "飞书")。