OpenClaw + 飞书:企业自动化完全指南

75次阅读

OpenClaw + 飞书:企业自动化完全指南

飞书已成为众多企业的协作标配,但重复性的文档编辑、表格更新、权限管理仍占用大量时间。OpenClaw 深度集成飞书生态,让你用代码自动化这些工作。本文是飞书自动化的完全指南。


01 飞书自动化价值

企业常见痛点:

OpenClaw 飞书技能矩阵:


02 环境准备

配置飞书应用

# 在飞书开放平台创建应用
# https://open.feishu.cn/app

# 获取以下凭证:# - App ID
# - App Secret
# - 申请所需权限:docx:document, drive:drive, etc.

OpenClaw 配置

{
  "channels": {
    "feishu": {
      "appId": "cli_xxxxxxxx",
      "appSecret": "xxxxxxxx"
    }
  }
}

03 文档自动化(feishu-doc)

基础操作

读取文档:

{
  "tool": "feishu_doc",
  "action": "read",
  "doc_token": "ABC123def"
}

创建文档:

{
  "tool": "feishu_doc",
  "action": "create",
  "title": " 项目周报 ",
  "folder_token": "fldcnXXX",
  "owner_open_id": "ou_xxx"
}

写入内容:

{
  "tool": "feishu_doc",
  "action": "write",
  "doc_token": "ABC123def",
  "content": "# 项目周报 \n\n## 本周进展 \n- 完成需求评审 \n- 启动开发 "
}

实战案例 1:自动生成项目周报

#!/bin/bash
# weekly-report.sh

# 1. 创建周报文档
DOC=$(feishu_doc action="create" title=" 项目周报 - $(date +%Y%m%d)" folder_token="fldcnProject")
DOC_TOKEN=$(echo $DOC | jq -r '.doc_token')

# 2. 生成周报内容
CONTENT="# 项目周报 ($(date +%Y-%m-%d))

## 一、本周进展

### 1. 开发进度
- 后端 API 开发完成 80%
- 前端页面完成 60%
- 单元测试覆盖率 75%

### 2. 问题与风险
| 问题 | 影响 | 解决方案 | 负责人 |
|------|------|----------|--------|
| 第三方接口延迟 | 高 | 增加缓存层 | 张三 |
| 前端性能优化 | 中 | 代码分割 | 李四 |

### 3. 下周计划
- [ ] 完成核心功能开发
- [ ] 联调测试
- [ ] 准备上线文档

## 二、数据统计

本周提交代码:$(git log --oneline --since='1 week ago' | wc -l) 次
解决 Bug:15 个
新增功能:3 个

---

* 自动生成于 $(date)*"

# 3. 写入文档
feishu_doc action="write" doc_token="$DOC_TOKEN" content="$CONTENT"

# 4. 创建表格
TABLE=$(feishu_doc action="create_table" doc_token="$DOC_TOKEN" row_size=4 column_size=3 column_width='[150,200,150]')

# 5. 填充表格数据
feishu_doc action="write_table_cells" doc_token="$DOC_TOKEN" table_block_id="$TABLE" values='[[" 任务 "," 负责人 "," 状态 "],["API 开发 "," 张三 "," 进行中 "],[" 前端页面 "," 李四 "," 进行中 "],[" 测试 "," 王五 "," 待开始 "]]'

# 6. 分享文档给团队
feishu_perm action="share" doc_token="$DOC_TOKEN" chat_id="chat_xxx" perm="edit"

echo " 周报已生成: https://xxx.feishu.cn/docx/$DOC_TOKEN"

执行输出:

 周报已生成: https://xxx.feishu.cn/docx/doxcnXXX

实战案例 2:批量更新文档模板

#!/bin/bash
# batch-update-template.sh

# 获取文件夹下所有文档
DOCS=$(feishu_drive action="list" folder_token="fldcnTemplates")

# 遍历更新
echo "$DOCS" | jq -r '.files[] | select(.type == "docx") | .token' | while read doc_token; do
  echo " 更新文档: $doc_token"

  # 读取原文档
  CONTENT=$(feishu_doc action="read" doc_token="$doc_token" | jq -r '.content')

  # 替换模板变量
  NEW_CONTENT=$(echo "$CONTENT" | sed 's/{{COMPANY}}/ 公司名称 /g')
  NEW_CONTENT=$(echo "$NEW_CONTENT" | sed 's/{{YEAR}}/2024/g')

  # 写回文档
  feishu_doc action="write" doc_token="$doc_token" content="$NEW_CONTENT"
done

echo " 批量更新完成 "

执行输出:

 找到 15 个文档
正在更新: 合同模板 -v1.docx
正在更新: 合同模板 -v2.docx
...
批量更新完成 

04 知识库自动化(feishu-wiki)

基础操作

列出知识库:

{
  "tool": "feishu_wiki",
  "action": "spaces"
}

获取知识库节点:

{
  "tool": "feishu_wiki",
  "action": "nodes",
  "space_id": "space_xxx"
}

创建 wiki 页面:

{
  "tool": "feishu_wiki",
  "action": "create",
  "space_id": "space_xxx",
  "title": " 新人入职指南 ",
  "parent_node_token": "nodexxx"
}

实战案例 3:自动归档过期文档

#!/bin/bash
# archive-old-docs.sh

SPACE_ID="space_xxx"
# 跨平台兼容的日期计算(支持 macOS 和 Linux)CUTOFF_DATE=$(python3 -c "from datetime import datetime, timedelta; print((datetime.now() - timedelta(days=90)).strftime('%Y-%m-%d'))" 2>/dev/null || \
  date -u -v-90d +%Y-%m-%d 2>/dev/null || \
  date -d '90 days ago' +%Y-%m-%d 2>/dev/null || \
  date --date='90 days ago' +%Y-%m-%d)

# 获取所有 wiki 节点
NODES=$(feishu_wiki action="nodes" space_id="$SPACE_ID")

# 找出 90 天未更新的文档
echo "$NODES" | jq -r '.nodes[] | select(.obj_type == "docx")' | while read node; do
  NODE_TOKEN=$(echo $node | jq -r '.node_token')
  LAST_EDIT=$(echo $node | jq -r '.edited_time')

  if [["$LAST_EDIT" < "$CUTOFF_DATE"]]; then
    echo " 归档文档: $NODE_TOKEN (最后编辑: $LAST_EDIT)"

    # 移动到归档目录
    feishu_wiki action="move" node_token="$NODE_TOKEN" target_parent_token="nodexxxArchive"
  fi
done

echo " 归档完成 "

执行输出:

 归档文档: nodexxx123 (最后编辑: 2025-12-01)
归档文档: nodexxx456 (最后编辑: 2025-11-15)
归档完成 

实战案例 4:知识库目录自动生成

#!/bin/bash
# generate-wiki-index.sh

SPACE_ID="space_xxx"
OUTPUT_DOC="docx_xxx"

# 获取所有节点
NODES=$(feishu_wiki action="nodes" space_id="$SPACE_ID")

# 生成目录内容
INDEX="# 知识库目录 \n\n"
INDEX+="* 最后更新: $(date)*\n\n"

# 按分类组织
echo "$NODES" | jq -r '.nodes[] | select(.parent_node_token == "")' | while read category; do
  CAT_NAME=$(echo $category | jq -r '.title')
  CAT_TOKEN=$(echo $category | jq -r '.node_token')

  INDEX+="## $CAT_NAME\n\n"

  # 获取子节点
  echo "$NODES" | jq -r ".nodes[] | select(.parent_node_token == \"$CAT_TOKEN\")" | while read doc; do
    DOC_TITLE=$(echo $doc | jq -r '.title')
    DOC_TOKEN=$(echo $doc | jq -r '.node_token')
    INDEX+="- [$DOC_TITLE](https://xxx.feishu.cn/wiki/$DOC_TOKEN)\n"
  done

  INDEX+="\n"
done

# 写入索引文档
feishu_doc action="write" doc_token="$OUTPUT_DOC" content="$INDEX"

echo " 目录已更新 "

执行输出:

 目录已更新 

05 云盘自动化(feishu-drive)

基础操作

列出文件:

{
  "tool": "feishu_drive",
  "action": "list",
  "folder_token": "fldcnxxx"
}

创建文件夹:

{
  "tool": "feishu_drive",
  "action": "create_folder",
  "name": "2024-Q1-Reports",
  "folder_token": "fldcnxxx"
}

移动文件:

{
  "tool": "feishu_drive",
  "action": "move",
  "file_token": "filexxx",
  "folder_token": "fldcnxxx"
}

实战案例 5:自动归档项目文件

#!/bin/bash
# auto-archive-project.sh

PROJECT_NAME="$1"
DATE=$(date +%Y%m%d)

# 1. 创建项目归档文件夹
FOLDER=$(feishu_drive action="create_folder" name="$PROJECT_NAME- 归档 -$DATE" folder_token="fldcnArchive")
FOLDER_TOKEN=$(echo $FOLDER | jq -r '.folder_token')

# 2. 收集项目相关文件
# 从各个文件夹移动文件到归档
for file_token in file1 file2 file3; do
  feishu_drive action="move" file_token="$file_token" folder_token="$FOLDER_TOKEN"
done

# 3. 设置权限(只读)feishu_perm action="share" file_token="$FOLDER_TOKEN" perm="readonly"

echo " 项目 $PROJECT_NAME 已归档 "

06 权限管理(feishu-perm)

权限基础操作

分享文档:

{
  "tool": "feishu_perm",
  "action": "share",
  "doc_token": "docx_xxx",
  "user_id": "ou_xxx",
  "perm": "edit"
}

批量设置权限:

#!/bin/bash
# batch-set-perm.sh

DOC_TOKEN="docx_xxx"
USERS="ou_1 ou_2 ou_3"  # 用户 ID 列表

for user in $USERS; do
  feishu_perm action="share" doc_token="$DOC_TOKEN" user_id="$user" perm="view"
done

echo " 权限设置完成 "

执行输出:

 权限设置完成 

07 综合实战

案例 6:新员工入职自动化

#!/bin/bash
# onboarding-automation.sh

NEW_EMPLOYEE_NAME="$1"
NEW_EMPLOYEE_ID="$2"
MANAGER_ID="$3"

# 1. 创建入职文档
ONBOARDING_DOC=$(feishu_doc action="create" title="$NEW_EMPLOYEE_NAME - 入职指南 " folder_token="fldcnHR")
DOC_TOKEN=$(echo $ONBOARDING_DOC | jq -r '.doc_token')

# 2. 写入入职内容
CONTENT="# $NEW_EMPLOYEE_NAME 入职指南

欢迎加入公司!以下是入职第一周的任务清单:## Day 1
- [ ] 完成入职培训
- [ ] 配置开发环境
- [ ] 熟悉团队文档

## Day 2-3
- [ ] 阅读项目代码
- [ ] 完成第一个小任务

## Week 1
- [ ] 参加周会
- [ ] 提交第一份代码

## 重要链接
- [员工手册](https://xxx.feishu.cn/wiki/xxx)
- [技术文档](https://xxx.feishu.cn/wiki/yyy)
- [团队日历](https://xxx.feishu.cn/calendar/zzz)

---

直属领导: @$MANAGER_ID"

feishu_doc action="write" doc_token="$DOC_TOKEN" content="$CONTENT"

# 3. 分享给新员工和主管
feishu_perm action="share" doc_token="$DOC_TOKEN" user_id="$NEW_EMPLOYEE_ID" perm="edit"

feishu_perm action="share" doc_token="$DOC_TOKEN" user_id="$MANAGER_ID" perm="edit"

echo " 入职文档已创建: https://xxx.feishu.cn/docx/$DOC_TOKEN"

执行输出:

 入职文档已创建: https://xxx.feishu.cn/docx/doxcnXXX

08 常见问题

Q1: API 返回权限错误

解决: 1. 检查应用权限是否申请 2. 确认文档已分享给应用 3. 用户是否已授权

Q2: 文档内容格式错乱

建议: – 使用 Markdown 格式 – 表格用 create_table + write_table_cells – 图片先上传再引用

Q3: 如何批量操作大量文档?

策略:

# 分页处理
PAGE_SIZE=50
OFFSET=0

while true; do
  DOCS=$(feishu_drive action="list" folder_token="fldcnxxx" page_size="$PAGE_SIZE" offset="$OFFSET")

  # 处理本页
  ...

  # 检查是否还有下一页
  HAS_MORE=$(echo $DOCS | jq -r '.has_more')
  ["$HAS_MORE" = "false"] && break

  OFFSET=$((OFFSET + PAGE_SIZE))
done

Q4: 如何监控文档变更?

方案: 结合飞书 webhook

# 设置 webhook 接收文档变更事件
# 在 OpenClaw 中处理事件 

09 总结

下一步: – 建立企业自动化脚本库 – 结合审批流程实现完整工作流 – 探索与飞书机器人的深度集成


本文是 OpenClaw 进阶技能系列第 8 篇,下一篇:《OpenClaw 媒体处理:视频、图片、GIF 全搞定》

#OpenClaw #飞书 #企业自动化 #文档管理 #协作工具

正文完