🎯 学习目标:学会安装飞书官方插件,并进行如日历、任务、联系人的管理
⏱️ 阅读时间:约 12 分钟
💡 前置要求:无
本文基于 飞书官方插件 v3.10+
支持的能力总览
🔧 安装飞书官方插件
步骤 1:安装飞书官方插件
npx -y @larksuite/openclaw-lark install安装过程中可选择:
新建机器人:扫描二维码一键创建 关联已有机器人:手动输入 App ID 和 App Secret
步骤 2:批量授权(重要)
在飞书对话框中输入:
/feishu auth完成批量授权后,OpenClaw 可以你的身份完成消息、文档、多维表格、日历等任务。
步骤 3:验证安装
# 在飞书对话中发送/feishu start# 或让 AI 学习新技能学习一下我安装的新飞书插件,列出有哪些能力🔐 飞书应用权限配置
⚠️ 重要:以下权限 Code 为飞书官方插件 v3.10+ 使用的权限,请在飞书开放平台批量导入。
完整权限清单
在飞书开放平台 → 权限管理 → 批量导入/导出权限,复制以下 JSON:
{"scopes":{"tenant":["contact:contact.base:readonly","docx:document:readonly","im:chat:read","im:chat:update","im:message.group_at_msg:readonly","im:message.p2p_msg:readonly","im:message.pins:read","im:message.pins:write_only","im:message.reactions:read","im:message.reactions:write_only","im:message:readonly","im:message:recall","im:message:send_as_bot","im:message:send_multi_users","im:message:send_sys_msg","im:message:update","im:resource","application:application:self_manage","cardkit:card:write","cardkit:card:read","contact:user.basic_profile:readonly"],"user":["contact:user.employee_id:readonly","offline_access","base:app:copy","base:field:create","base:field:delete","base:field:read","base:field:update","base:record:create","base:record:delete","base:record:retrieve","base:record:update","base:table:create","base:table:delete","base:table:read","base:table:update","base:view:read","base:view:write_only","base:app:create","base:app:update","base:app:read","sheets:spreadsheet.meta:read","sheets:spreadsheet:read","sheets:spreadsheet:create","sheets:spreadsheet:write_only","docs:document:export","docs:document.media:upload","board:whiteboard:node:create","board:whiteboard:node:read","calendar:calendar:read","calendar:calendar.event:create","calendar:calendar.event:delete","calendar:calendar.event:read","calendar:calendar.event:reply","calendar:calendar.event:update","calendar:calendar.free_busy:read","contact:contact.base:readonly","contact:user.base:readonly","contact:user:search","docs:document.comment:create","docs:document.comment:read","docs:document.comment:update","docs:document.media:download","docs:document:copy","docx:document:create","docx:document:readonly","docx:document:write_only","drive:drive.metadata:readonly","drive:file:download","drive:file:upload","im:chat.members:read","im:chat:read","im:message","im:message.group_msg:get_as_user","im:message.p2p_msg:get_as_user","im:message:readonly","search:docs:read","search:message","space:document:delete","space:document:move","space:document:retrieve","task:comment:read","task:comment:write","task:task:read","task:task:write","task:task:writeonly","task:tasklist:read","task:tasklist:write","wiki:node:copy","wiki:node:create","wiki:node:move","wiki:node:read","wiki:node:retrieve","wiki:space:read","wiki:space:retrieve","wiki:space:write_only","contact:user.basic_profile:readonly"]}}权限申请步骤
进入飞书开放平台 → 选择你的应用 点击"权限管理" → "批量导入/导出权限" 复制上述 JSON,点击"下一步,确认新增权限" 点击"申请开通"(自行在飞书 APP 审核或咨询企业管理员审核) "应用身份权限"数据范围保持默认"与应用的可用范围一致"
🚀 快速开始
安装完成后,在飞书中向机器人发送任意消息即可开始对话。
推荐体验:
"帮我创建一个项目计划文档" "查询我明天的日程安排" "在客户表格里添加一条记录" "搜索群里昨天讨论的内容"
📅 日历日程管理
创建日程
使用方式
# 创建单个日程"明天上午 10 点和产品团队开会,讨论 Q2 产品规划"# 创建带参会人的日程"下周一上午 9 点项目启动会,邀请张三、李四、王五参加"# 创建重复日程"每周一上午 9 点团队例会,持续 1 小时"技能实现
module.exports = {name: 'calendar-create',asyncexecute({ summary, startTime, endTime, attendees, description }) {try {// 创建日程 - 符合飞书官方 API 格式const event = awaitfeishu_calendar_event('create', {summary: summary,start_time: {timestamp: newDate(startTime).toISOString(),timezone: 'Asia/Shanghai' },end_time: {timestamp: newDate(endTime).toISOString(),timezone: 'Asia/Shanghai' },description: description,attendees: attendees || [], // [{ type: 'user', id: 'ou_xxx' }]user_open_id: 'ou_current_user'// 必填:当前用户 ID });return`✅ 日程已创建\n\n标题:${event.summary}\n时间:${formatTime(event.start_time)} - ${formatTime(event.end_time)}\n链接:${event.html_link}`; } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,请检查日历权限配置'; }if (error.code === '99991002') {return'❌ 参数错误,请检查时间格式是否正确'; }console.error('创建日程失败:', error);throw error; } }};查询忙闲
使用方式
# 查询个人忙闲"查看我明天上午是否有空"# 查询团队忙闲"查看产品团队下周一下午谁有空"# 找会议时间"帮我找个时间,下周一到周三,张三和李四都有空的 1 小时"技能实现
module.exports = {name: 'calendar-freebusy',asyncexecute({ userIds, timeMin, timeMax }) {try {// 查询忙闲 - 符合飞书官方 API 格式const freeBusy = awaitfeishu_calendar_freebusy('list', {user_ids: userIds, // ['ou_xxx', 'ou_yyy']time_min: newDate(timeMin).toISOString(),time_max: newDate(timeMax).toISOString() });// 分析空闲时间const availableSlots = findAvailableSlots(freeBusy);if (availableSlots.length === 0) {return'❌ 没有找到共同的空闲时间'; }return`✅ 找到 ${availableSlots.length} 个空闲时间段\n\n` + availableSlots.map(slot =>`📅 ${formatDate(slot.start)}${formatTime(slot.start)} - ${formatTime(slot.end)}` ).join('\n'); } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,无法查询忙闲'; }throw error; } }};functionfindAvailableSlots(freeBusy) {// 实现空闲时间分析逻辑// 返回所有用户都空闲的时间段return [];}✅ 任务管理
创建任务
使用方式
# 创建个人任务"创建一个任务:完成产品需求文档,本周五截止"# 创建带负责人的任务"创建任务:UI 设计稿评审,负责人是设计师小李,下周三前完成"# 创建任务清单"创建一个'Q2 产品迭代'清单,包含以下任务:..."技能实现
module.exports = {name: 'task-create',asyncexecute({ summary, description, dueDate, members, tasklistGuid }) {try {// 创建任务 - 符合飞书官方 API 格式const task = awaitfeishu_task_task('create', {summary: summary,description: description,due: {timestamp: newDate(dueDate).toISOString(),is_all_day: false },members: members || [], // [{ id: 'ou_xxx', role: 'assignee' }]current_user_id: 'ou_current_user'// 必填:当前用户 ID });return`✅ 任务已创建\n\n标题:${task.summary}\n截止时间:${formatDate(task.due)}\n负责人:${getAssigneeName(task.members)}\n链接:${task.url}`; } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,请检查任务权限配置'; }throw error; } }};任务清单管理
使用方式
# 创建清单"创建一个'Q2 产品迭代'任务清单"# 查看清单内任务"显示'Q2 产品迭代'清单里的所有任务"# 添加成员到清单"把张三和李四添加到'Q2 产品迭代'清单"技能实现
module.exports = {name: 'tasklist-manage',asyncexecute({ action, name, members }) {try {if (action === 'create') {// 创建任务清单 - 符合飞书官方 API 格式const tasklist = awaitfeishu_task_tasklist('create', {name: name });return`✅ 任务清单已创建\n\n名称:${tasklist.name}\n链接:${tasklist.url}`; }if (action === 'tasks') {// 查看清单内任务const tasks = awaitfeishu_task_tasklist('tasks', {tasklist_guid: arguments.tasklistGuid });returnformatTaskList(tasks); } } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,无法操作任务清单'; }throw error; } }};functionformatTaskList(tasks) {if (tasks.length === 0) {return'📋 暂无任务'; }let result = `📋 共 ${tasks.length} 个任务\n\n`; tasks.forEach(task => {const status = task.completed ? '✅' : '⏳'; result += `${status}${task.summary}\n`; result += ` 截止:${formatDate(task.due)} | 负责人:${getAssigneeName(task.members)}\n\n`; });return result;}👥 联系人管理
搜索同事
使用方式
# 按姓名搜索"帮我找一下张三的联系方式"# 按部门搜索"产品部有哪些人?"# 按手机号/邮箱搜索"查一下 13800138000 是谁"技能实现
module.exports = {name: 'contact-search',asyncexecute({ query, department }) {try {// 搜索用户 - 符合飞书官方 API 格式const users = awaitfeishu_search_user({query: query,page_size: 20 });if (users.length === 0) {return'❌ 未找到匹配的用户'; }returnformatUserList(users); } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,无法搜索用户'; }throw error; } }};functionformatUserList(users) {let result = `👥 找到 ${users.length} 位用户\n\n`; users.forEach(user => { result += `📌 ${user.name}\n`; result += ` 部门:${user.department}\n`; result += ` 职位:${user.title}\n`;if (user.email) result += ` 邮箱:${user.email}\n`;if (user.mobile) result += ` 手机:${user.mobile}\n`; result += '\n'; });return result;}获取用户详情
使用方式
# 获取当前用户信息"我是谁?显示我的信息"# 获取指定用户信息"显示张三的详细信息"技能实现
module.exports = {name: 'contact-get',asyncexecute({ userId }) {try {// 获取用户信息 - 符合飞书官方 API 格式const user = awaitfeishu_get_user({user_id: userId // 不传则获取当前用户 });return`📌 ${user.name}\n\n` +`部门:${user.department}\n` +`职位:${user.title}\n` +`邮箱:${user.email}\n` +`手机:${user.mobile}\n` +`工号:${user.employee_no}\n`; } catch (error) {if (error.code === '99991001') {return'❌ 权限不足,无法获取用户信息'; }throw error; } }};✅ 学完这篇你能做什么
学完 Day 15,你将能够:
✅ 日历管理:创建、查询、修改、删除日程,查询团队忙闲,智能安排会议时间 ✅ 任务管理:创建个人和团队任务,设置截止时间和负责人,管理任务清单 ✅ 联系人管理:搜索同事信息,获取用户详情,快速找到团队成员联系方式 ✅ 权限配置:正确配置飞书应用权限,使用完整权限 JSON 批量导入 ✅ 安装部署:完成飞书官方插件的安装、授权和验证 ✅ 问题排查:使用 /feishu诊断命令快速定位和解决问题
🔜 下篇预告
Day 16:飞书深度集成(下):多维表格、云文档实战
在下一篇中,我们将学习:
📊 多维表格管理:创建表格、添加记录、批量操作、高级筛选 📄 云文档操作:创建文档、更新内容、插入图片/文件、文档评论 📈 电子表格:读取数据、写入数据、数据分析 🔧 高级配置:流式输出、话题独立上下文、多账号配置 🛠️ 实战案例:客户管理系统、项目跟踪表格、自动会议纪要
敬请期待!🚀
💬 互动环节
本周收获
留言分享你最大的收获!
遇到问题
遇到什么技术难题?大家一起解决!
实战经验
你在飞书集成中遇到过什么有趣场景?如何解决的?
建议反馈
内容难度如何?需要调整什么?
公众号:OpenClaw 研习社系列:OpenClaw 30 天入门到精通作者:OpenClaw 研习社
夜雨聆风