概述
飞书开放平台提供了丰富的 API,其中多维表格(Bitable)是最常用的能力之一。本文介绍如何在 Node.js 项目中集成飞书 SDK,实现记录查询、条件筛选与批量写入,并通过事件订阅实现消息自动处理。
1. 初始化客户端
使用官方 @larksuiteoapi/node-sdk 创建客户端实例,需要传入 App ID 与 App Secret:
const lark = require('@larksuiteoapi/node-sdk');
const client = new lark.Client({ appId, appSecret });
2. 查询多维表格记录
通过 bitable.v1.app.table.record.list 接口分页拉取记录,可配合 Filter 条件进行筛选:
const resp = await client.bitable.v1.app.table.record.list({
path: { app_token, table_id },
params: { page_size: 100, filter: `CurrentValue.[客户] = "${name}"` }
});
3. 批量写入记录
当需要批量插入数据时,使用 batch_create 接口可以显著减少请求次数:
await client.bitable.v1.app.table.record.batch_create({
path: { app_token, table_id },
data: { records: recordsArr }
});
4. 事件订阅网关
飞书支持通过 HTTP 回调接收事件。在 Express 中注册路由,验证 URL challenge 后即可接收消息事件并自动回复:
router.post('/feishu/webhook', (req, res) => {
const { type, challenge } = req.body;
if (type === 'url_verification') return res.json({ challenge });
// 处理业务事件...
res.json({ code: 0 });
});
小结
飞书 SDK 封装良好,结合 Express 网关可以快速搭建企业内部自动化工具。关键点在于 token 管理、分页处理与事件去重。