从飞书同步用户数据
飞书 / Lark专业版+介绍
飞书 / Lark 插件支持将飞书组织中的用户和部门同步到 NocoBase。除了手动执行全量同步,还可以通过 HTTP 回调或 Stream 长连接接收增量变更。
准备工作
- 安装并启用 飞书 / Lark 和 用户数据同步 插件。
- 在飞书开放平台创建企业自建应用,参考认证:飞书 / Lark。
- 按下文说明开通通讯录权限并配置通讯录授权范围。
配置通讯录权限和授权范围
在飞书开放平台进入应用的 权限管理,开通以下权限:
随后配置 通讯录权限范围(决定应用可访问的部门和成员):
- 在 开发配置 → 权限管理 页面,点击权限列表中「可访问的数据范围」列右侧的 配置(开通通讯录权限时页面也会自动跳转到这里)。
- 选择应用可访问的部门和成员,建议初次接入时选择 全部成员,验证链路通过后再按需收窄。
- 点击 确定 保存。
通讯录权限范围与「应用可用范围」(哪些人可以使用应用)是两个独立配置,不要混淆;只有 通讯录权限范围 影响数据同步。接口权限决定应用可以读取哪些字段,通讯录权限范围决定可以读取哪些部门和用户,两项都需要配置;同步 范围跟随权限范围,修改后需要重新执行一次全量同步。事件订阅不能代替通讯录读取权限:收到事件后 NocoBase 仍会调用飞书接口读取对应用户或部门的最新信息。
添加飞书同步来源
进入 用户和权限 → 同步,添加来源,类型选择 飞书 / Lark。
配置以下字段:
保存并启用来源后,点击 同步 完成首次全量同步。
选择事件接收方式
Stream 模式
Stream 模式由 NocoBase 服务端主动与飞书建立 WebSocket 长连接,不需要公网回调地址,也不需要配置 Token 或 Encrypt Key。
- 在 NocoBase 中选择 Stream 模式,保存并启用来源。
- 在飞书开放平台 事件与回调 中将事件接收方式切换为 使用长连接接收事件,并订阅通讯录变更事件。
来源启用后自动启动长连接(断线自动重连)。更新、停用或删除来源时,对应连接会刷新或关闭。
Stream 模式不要求公网入站地址,也不需要配置反向代理,适合内网部署。可在应用日志中搜索 Feishu stream client 查看连接状态。
HTTP 回调
HTTP 回调模式通过 NocoBase 的回调地址接收飞书事件。
- 在 NocoBase 中选择 HTTP 回调,配置 Verification Token 和(可选)Encrypt Key,二者至少配置一项。
- 保存来源并复制界面显示的 事件回调 URL。
- 在飞书开放平台 事件与回调 → 事件配置 中,将接收方式设为将事件推送至开发者服务器,填入回调 URL,并订阅通讯录变更事件。
回调地址必须能够被飞书访问(生产环境使用 HTTPS)。配置 Encrypt Key 后回调内容加密传输,安全性更高。
未配置 Verification Token 或 Encrypt Key 时,回调请求会被拒绝(401)。同步来源切换为 Stream 模式后,HTTP 回调入口会关闭(403)。
支持的增量事件
两种事件接收方式均支持以下飞书通讯录事件:
删除已同步用户时,拥有 Root 角色的用户不会被删除。
同步字段
部门字段
用户字段
部门负责人
NocoBase 会将部门信息中的负责人(部门 Leader)同步为部门主管:同一个用户可以是多个部门的负责人,负责人部门不一定是用户的主部门,只有授权范围内的部门参与同步。飞书侧取消负责人后,下次同步也会取消 NocoBase 中对应的主管标记;在 NocoBase 中手动修改的负责人可能在下次同步时被覆盖。
目前不同步头像、职位、工号等其他飞书用户字段。
故障排查
- 同步结果为空或缺少整个部门:检查通讯录权限是否开通,以及该部门是否在通讯录权限范围内(配置方法见上文)。
- 用户昵称为空:检查是否开通 获取用户基本信息(
contact:user.base:readonly)权限,开通后重新执行全量同步。 - 用户被跳过:检查用户是否具有当前配置的唯一标识字段取值,以及与认证器的唯一标识选择是否一致。
- HTTP 回调返回 401:未配置 Verification Token 或 Encrypt Key,或 Token 校验失败;返回 403:来源已切换为 Stream 模式。
redirect_uri或回调地址相关报错:确认飞书后台配置的地址与 NocoBase 界面显示的地址完全一致,子路径 部署(APP_PUBLIC_PATH)时注意地址前缀。- 同步任务失败并提示飞书接口调用频率限制:飞书开放平台 API 有调用量限制,等待限制解除后重新手动执行同步。

