🎯 学习目标:学会使用飞书插件操作多维表格、云文档
⏱️ 阅读时间:约 12 分钟
💡 前置要求:已安装飞书官方插件 v3.10+
📊 多维表格管理
💡 提示:飞书官方插件 v3.10+ 支持完整的多维表格和电子表格操作能力。
创建表格
使用方式
# 创建空表格"创建一个多维表格,记录项目任务"# 创建带字段的表格"创建一个客户管理表格,包含姓名、公司、电话、状态字段"# 创建电子表格"创建一个 Excel 表格,统计本月销售数据"技能实现
module.exports = {name: 'bitable-create',asyncexecute({ name, fields }) {try {// 1. 创建多维表格应用 - 符合飞书官方 API 格式const app = awaitfeishu_bitable_app('create', {name: name || '新多维表格',folder_token: undefined// 默认创建到我的空间 });// 2. 创建数据表 - 符合飞书官方 API 格式const table = awaitfeishu_bitable_app_table('create', {app_token: app.app_token,table: {name: '数据表',fields: fields || [ { field_name: '名称', type: 1 }, // 文本 { field_name: '状态', type: 3 } // 单选 ] } });return`✅ 多维表格已创建\n\n名称:${app.name}\n表格 ID:${table.table_id}\n\n访问链接:${app.url}`; } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,请检查多维表格权限配置'; }if (error.code === '99991002') {return'❌ 参数错误,请检查字段定义'; }console.error('创建表格失败:', error);throw error; } }};添加记录
使用方式
# 添加单条记录"在客户表格里添加一条记录:张三,XX 公司,13800138000"# 批量添加"导入这 10 个客户数据到表格"# 带筛选条件"查询状态为'进行中'的所有任务"技能实现
module.exports = {name: 'bitable-add-record',asyncexecute({ appToken, tableId, fields }) {try {// 验证必填参数if (!appToken) {thrownewError('多维表格 Token 必填'); }if (!tableId) {thrownewError('表格 ID 必填'); }// 创建记录 - 符合飞书官方 API 格式const record = awaitfeishu_bitable_app_table_record('create', {app_token: appToken,table_id: tableId,fields: fields });return`✅ 记录已添加\n\n记录 ID:${record.record_id}`; } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,请检查应用权限配置'; }if (error.code === '99991002') {return'❌ 参数错误,请检查字段名称和类型是否匹配'; }console.error('添加记录失败:', error);throw error; } }};📄 云文档管理
创建文档
使用方式
# 创建文档"创建一个项目方案文档"# 在知识库中创建"在产品知识库中创建一篇需求文档"# 带初始内容"创建会议纪要,包含以下内容:..."技能实现
module.exports = {name: 'doc-create',asyncexecute({ title, content, folderToken, wikiSpace }) {try {// 创建云文档 - 符合飞书官方 API 格式const doc = awaitfeishu_create_doc({title: title || '新文档',markdown: content || '',folder_token: folderToken, // 可选:指定文件夹wiki_space: wikiSpace // 可选:指定知识库 });return`✅ 文档已创建\n\n标题:${doc.title}\n链接:${doc.url}`; } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,请检查云文档权限配置'; }console.error('创建文档失败:', error);throw error; } }};更新文档
使用方式
# 追加内容"在文档末尾添加新的章节"# 覆盖内容"更新文档的摘要部分"# 插入内容"在'项目背景'章节后插入新的分析"技能实现
module.exports = {name: 'doc-update',asyncexecute({ docId, mode, content, selection }) {try {// 更新云文档 - 符合飞书官方 API 格式awaitfeishu_update_doc({doc_id: docId,mode: mode || 'append', // append/overwrite/replace_range等markdown: content,selection_with_ellipsis: selection // 可选:定位内容 });return'✅ 文档已更新'; } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,无法更新文档'; }console.error('更新文档失败:', error);throw error; } }};文档评论
使用方式
# 添加评论"在文档里添加评论:这个方案需要再完善"# 查看评论"显示文档的所有评论"# 解决评论"标记这条评论为已解决"技能实现
module.exports = {name: 'doc-comment',asyncexecute({ docId, action, content, commentId }) {try {if (action === 'create') {// 添加评论 - 符合飞书官方 API 格式awaitfeishu_doc_comments('create', {file_token: docId,file_type: 'docx',elements: [{type: 'text',text: content }] });return'✅ 评论已添加'; }if (action === 'list') {// 查看评论const comments = awaitfeishu_doc_comments('list', {file_token: docId,file_type: 'docx' });returnformatComments(comments); } } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,无法操作评论'; }throw error; } }};functionformatComments(comments) {if (comments.length === 0) {return'💬 暂无评论'; }let result = `💬 共 ${comments.length} 条评论\n\n`; comments.forEach(comment => { result += `- ${comment.content}\n`; result += ` 作者:${comment.user_name} | 时间:${formatDate(comment.create_time)}\n\n`; });return result;}🔧 高级配置
流式输出(推荐)
开启流式输出,可看到 AI 逐字回复的效果:
# 开启流式输出openclaw config set channels.feishu.streaming true# 开启耗时显示openclaw config set channels.feishu.footer.elapsed true# 开启状态展示openclaw config set channels.feishu.footer.status true话题群独立上下文
在话题群/消息群话题模式中,针对每个话题拥有独立上下文以及多任务并行:
# 开启话题独立会话openclaw config set channels.feishu.threadSession true# 关闭openclaw config set channels.feishu.threadSession false🎭 多账号配置
OpenClaw 支持在同一台机器上配置多个飞书机器人账户,实现:
账户隔离:每个飞书机器人独立管理,互不干扰 路由分发:不同飞书机器人的消息路由到不同的 agent(工作空间) 灵活控制:每个账户可以有不同的访问策略、技能权限等
配置示例
编辑 ~/.openclaw/openclaw.json:
{"agents":{"list":[{"id":"main","name":"主助手","default":true,"workspace":"~/.openclaw/workspace-main"},{"id":"work","name":"工作助手","workspace":"~/.openclaw/workspace-work"}]},"session":{"dmScope":"per-account-channel-peer"},"channels":{"feishu":{"enabled":true,"appId":"cli_xxx","appSecret":"xxx","accounts":{"default":{},"work":{"appId":"cli_work_yyy","appSecret":"work_secret_yyy","botName":"工作机器人","dmPolicy":"allowlist","allowFrom":["ou_5b990e213988b9bcf396f955a50b2a22"]}},"groups":{"*":{"requireMention":true}}}},"bindings":[{"agentId":"main","match":{"channel":"feishu","accountId":"default"}},{"agentId":"work","match":{"channel":"feishu","accountId":"work"}}]}🛠️ 常用诊断命令
可以在与 OpenClaw 的对话中发送以下命令:
/feishu start | |
/feishu doctor | |
/feishu auth | |
/feishu info |
命令行诊断工具
# 查看问题并自主修复npx @larksuite/openclaw-lark doctor# 自动修复npx @larksuite/openclaw-lark doctor --fix# 查看版本信息npx @larksuite/openclaw-lark info# 查看详细配置npx @larksuite/openclaw-lark info --all❓ 常见问题
Q1: 权限不足怎么办?
解决方案:
在飞书开放平台 → 权限管理 → 批量导入上述权限 JSON 等待企业管理员审核通过 运行 /feishu doctor --fix尝试自动修复
Q2: 插件安装后报错 cannot find module xxx?
原因:系统没有安装插件的依赖(可能是安装被中断或权限问题)
解决方法:
# 进入插件安装目录cd ~/.openclaw/extensions/openclaw-lark# 安装依赖npm installQ3: 如何升级飞书官方插件?
# 升级插件npx -y @larksuite/openclaw-lark update# 验证版本/feishu start✅ 学完这篇你能做什么
学完 Day 16,你将能够:
✅ 多维表格管理:创建表格、添加记录、批量操作、高级筛选、视图管理 ✅ 电子表格操作:读取数据、写入数据、追加行、查找单元格、导出 Excel/CSV ✅ 云文档操作:创建文档、更新内容(7 种模式)、插入图片/文件、文档评论 ✅ 高级配置:流式输出、话题独立上下文、多账号配置 ✅ 问题排查:使用 /feishu诊断命令和命令行工具快速定位和解决问题
🔜 下篇预告
Day 17:工作流自动化:定时任务、事件触发、条件判断
在下一篇中,我们将学习:
⏰ 定时任务:系统 Cron、node-cron 库、外部调度服务 🔔 事件触发:消息自动处理、飞书事件订阅、条件判断 📧 邮件事件:新邮件提醒、自动分类、智能回复 📱 钉钉/企业微信:跨平台消息通知、Webhook 集成 🔀 条件判断:根据消息内容、发送者、时间等条件执行不同操作 🛠️ 实战案例:每日早报自动发送、周报自动生成、紧急消息提醒
敬请期待!🚀
💬 互动环节
本周收获
留言分享你最大的收获!
遇到问题
遇到什么技术难题?大家一起解决!
实战经验
你在多维表格或云文档自动化中遇到过什么有趣场景?如何解决的?
建议反馈
内容难度如何?需要调整什么?
公众号:OpenClaw 研习社系列:OpenClaw 30 天入门到精通作者:OpenClaw 研习社
夜雨聆风