Install
openclaw skills install feishu-log飞书日志记录 - 用户主动提供日志内容,智能整理、结构化、层次化后写入飞书文档,不使用固定模板。使用场景:(1) 会议记录,(2) 项目日志,(3) 工作复盘,(4) 重要事件记录
openclaw skills install feishu-log用户主动提供日志内容,智能整理、结构化、层次化后写入飞书文档:
用户直接提供日志内容,例如:
请记录今天的会议内容:
- 会议主题:[主题名称]
- 时间:[日期和时间]
- 参会人员:[人员名单]
- 主要内容:[讨论要点]
- 决策事项:[达成的决策]
- 下一步:[行动计划]
帮我记录项目进展:
- 项目名称:[项目名称]
- 当前阶段:[项目阶段]
- 已完成:[完成的工作]
- 遇到问题:[遇到的挑战]
- 下一步计划:[后续安排]
记录今天的工作:
- 完成的工作项 1
- 完成的工作项 2
- 参加的会议
- 遇到的问题和解决方案
不使用固定模板,而是:
提取关键信息
层次化组织
保留所有细节
飞书云盘/
└── 日志/
└── 2026 年/
└── 03 月/
└── 04 日/
└── log/
├── 2026-03-04 华为会议.docx
└── 2026-03-04 信誉库节点网络配置.docx
逻辑:
YYYY-MM-DD 主题使用飞书原生块格式写入结构化后的内容:
重要:本技能使用 tenant_access_token(应用级令牌),无需用户授权即可使用。
| 权限 | 说明 |
|---|---|
drive:drive | 查看、评论、编辑和管理云空间中所有文件 |
drive:file | 上传、下载文件到云空间 |
docx:document | 创建及编辑新版文档 |
space:folder:create | 创建云空间文件夹 |
docs:permission.member:add | 添加协作者权限 |
https://open.feishu.cn/app/YOUR_APP_ID/auth?q=drive:drive,drive:file,docx:document,space:folder:create,docs:permission.member:add
技能自动使用 tenant_access_token,无需手动配置:
// 内部实现:使用 APP_ID 和 APP_SECRET 获取 tenant_access_token
async function getTenantToken() {
const result = await httpRequest('POST', '/auth/v3/tenant_access_token/internal/', {
body: { app_id: CONFIG.APP_ID, app_secret: CONFIG.APP_SECRET }
});
return result.tenant_access_token;
}
Token 有效期:2 小时(自动刷新)
重要说明:本技能使用 tenant_access_token(应用级令牌),所有配置通过环境变量设置。
| 参数 | 说明 | 默认值 |
|---|---|---|
FEISHU_APP_ID | 飞书应用 ID | 必填(从.env 文件加载) |
FEISHU_APP_SECRET | 飞书应用密钥 | 必填(从.env 文件加载) |
DEFAULT_OWNER_ID | 协作者 user_id(用户的 open_id) | 必填(从.env 文件加载) |
ROOT_LOG_FOLDER_NAME | 日志根文件夹名称 | 可选,默认:工作日志 |
方式 1:在 .env 文件中配置(推荐)
# ~/.openclaw/workspace/.env
FEISHU_APP_ID="your_app_id"
FEISHU_APP_SECRET="your_app_secret"
DEFAULT_OWNER_ID="your_open_id"
ROOT_LOG_FOLDER_NAME="工作日志"
方式 2:在 Shell 中导出
export FEISHU_APP_ID="your_app_id"
export FEISHU_APP_SECRET="your_app_secret"
export DEFAULT_OWNER_ID="your_open_id"
TOKEN=$(curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/" \
-H "Content-Type: application/json" \
-d '{"app_id":"cli_xxx","app_secret":"xxx"}' | jq -r '.tenant_access_token')
curl -s "https://open.feishu.cn/open-apis/contact/v3/users?user_id_type=open_id&page_size=10" \
-H "Authorization: Bearer $TOKEN" | jq '.data.items[] | {open_id, user_id}'
消息 payload 中的 sender.open_id
应用管理 > 权限管理 > 已授权用户
成功时返回:
{
"success": true,
"date": "2026-03-04",
"title": "华为会议记录",
"folder": {
"root": "日志",
"year": "2026 年",
"month": "03 月",
"day": "04 日",
"subfolder": "log",
"token": "fld_xxx"
},
"document": {
"title": "2026-03-04 华为会议记录",
"document_id": "doxxx",
"url": "https://feishu.cn/docx/doxxx",
"existed": false,
"permission_added": true
},
"permissions": {
"folders_checked": 5,
"user_has_full_access": true
}
}
本技能使用 tenant_access_token(应用级令牌),而非 user_access_token。
优势:
工作流程:
环境变量 (FEISHU_APP_ID, FEISHU_APP_SECRET)
↓
getTenantToken() 获取 tenant_access_token
↓
所有 API 调用使用该 token
↓
飞书 API 返回结果
feishu_doc 工具的 create 动作限制问题: feishu_doc 的 create 动作不支持 content 参数,只会创建空文档。
正确用法:
// ❌ 错误:create 不会写入内容
feishu_doc action=create title="文档标题" content="..."
// ✅ 正确:先 create 再 write
feishu_doc action=create title="文档标题"
feishu_doc action=write doc_token="<document_id>" content="..."
修复方案:
create 创建文档,获取 document_idwrite 写入内容到该文档write 到已有文档| 错误码 | 说明 | 解决方案 |
|---|---|---|
| 99991400 | 应用频率限制 | 降低调用频率 |
| 1310213 | 权限不足 | 检查文件夹访问权限 |
| 1061004 | 禁止访问 | 确认应用权限配置 |
| 99991661 | 缺少 access token | 重新获取 token |
| 1770001 | 参数无效 | 检查块格式 |
| 文档内容为空 | create 动作不处理 content | 改用 create + write 组合 |
| 问题 | 状态 | 说明 |
|---|---|---|
| 有序列表块格式错误 | ✅ 已修复 | 改为使用文本块渲染 |
| 内容写入失败 | ✅ 已修复 | 优化块解析器 |
| 权限管理 | ✅ 正常 | 添加用户为协作者(full_access) |
| 文件夹复用 | ✅ 正常 | 已存在的文件夹直接复用 |
| 固定模板限制 | ✅ 已移除 | 改为智能整理内容 |
飞书云盘/
└── 日志/ # 根文件夹
└── 2026 年/ # 年份文件夹
└── 03 月/ # 月份文件夹
└── 04 日/ # 日期文件夹
└── log/ # 日志子文件夹
├── 2026-03-04 华为会议.docx
└── 2026-03-04 项目进展.docx
YYYY 年MM 月DD 日logYYYY-MM-DD 主题full_access 权限(可管理)POST https://open.feishu.cn/open-apis/drive/v1/permissions/:token/members
Content-Type: application/json
Authorization: Bearer {tenant_access_token}
{
"member_type": "openid",
"member_id": "ou_xxx",
"perm": "full_access"
}
请求参数:
| 参数 | 说明 |
|---|---|
member_type | "openid" |
member_id | 用户的 open_id |
perm | full_access(可管理) |
URL 参数:
| 参数 | 说明 |
|---|---|
type | 资源类型(folder/docx) |
| 权限级别 | 可执行操作 |
|---|---|
full_access | 查看、编辑、删除、分享、添加协作者 |
edit | 查看、编辑、评论 |
view | 查看、评论 |
当用户请求记录日志时,按以下流程处理:
根据内容特点进行整理:
示例 1:会议记录
# 2026-03-04 华为会议
## 📋 会议信息
- 时间:2026-03-04 上午
- 参会方:华为
- 主题:信誉库节点网络配置
## 💬 讨论内容
[根据实际讨论内容整理]
## ✅ 决策事项
[提取的决策]
## 📌 下一步
[行动项]
示例 2:项目进展
# 2026-03-04 项目进展
## 📊 当前状态
[项目状态]
## ✅ 已完成
[完成的工作]
## ⚠️ 问题与挑战
[遇到的问题]
## 📋 下一步计划
[后续安排]
日志 → YYYY 年 → MM 月 → DD 日 → logYYYY-MM-DD 主题)技能位置: ~/.openclaw/workspace/skills/feishu-log/