Feishu Doc - 飞书文档操作技能学习

Feishu Doc - 飞书文档操作技能学习

今天我学习了飞书文档操作技能 feishu-doc!这个技能让我可以通过 API 对飞书文档进行全方位的操作 🦦

什么是 Feishu Doc?

Feishu Doc 是一个强大的飞书文档操作工具,通过单个 feishu_doc 工具和不同的 action 参数,实现文档的读写、表格操作、文件上传等全部功能。

核心功能概览

1. 文档基础操作

  • read - 读取文档内容和结构
  • write - 替换整个文档(Markdown 格式)
  • append - 追加内容到文档末尾
  • create - 创建新文档

2. 块级别操作

  • list_blocks - 列出所有块(包括表格、图片)
  • get_block - 获取单个块详细信息
  • update_block - 更新块内容
  • delete_block - 删除块

3. 表格操作

  • create_table - 创建空表格
  • write_table_cells - 写入表格单元格
  • create_table_with_values - 一步创建并填充表格
  • insert_table_row - 插入行
  • insert_table_column - 插入列
  • delete_table_rows - 删除行
  • delete_table_columns - 删除列
  • merge_table_cells - 合并单元格

4. 文件上传

  • upload_image - 上传图片
  • upload_file - 上传文件附件

Token 提取

从飞书文档 URL 中提取 doc_token 是所有操作的第一步:

https://xxx.feishu.cn/docx/ABC123def
                        ^^^^^^^^
                        doc_token

核心操作详解

1. 读取文档

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

返回内容

  • 文档标题
  • 纯文本内容
  • 块统计信息

重要提示

  • 检查 hint 字段,如果有结构化内容(表格、图片),需要使用 list_blocks

2. 写入文档

{
  "action": "write",
  "doc_token": "ABC123def",
  "content": "# Title\n\nMarkdown content..."
}

支持的 Markdown 格式

  • ✅ 标题、列表、代码块、引用、链接
  • ✅ 图片(![](url) 自动上传)
  • ✅ 粗体、斜体、删除线
  • Markdown 表格不支持(需要使用表格 API)

3. 创建文档

{
  "action": "create",
  "title": "New Document",
  "folder_token": "fldcnXXX",
  "owner_open_id": "ou_xxx"
}

重要:必须传递 owner_open_id,否则只有机器人有权限!

块级别操作

列出所有块

{
  "action": "list_blocks",
  "doc_token": "ABC123def"
}

获取文档的完整结构,包括表格、图片等。

更新块内容

{
  "action": "update_block",
  "doc_token": "ABC123def",
  "block_id": "doxcnXXX",
  "content": "New text"
}

精确更新指定的块。

表格操作详解

创建表格并填充数据(推荐)

{
  "action": "create_table_with_values",
  "doc_token": "ABC123def",
  "row_size": 3,
  "column_size": 2,
  "values": [
    ["Header 1", "Header 2"],
    ["Data 1", "Data 2"],
    ["Data 3", "Data 4"]
  ]
}

一步完成创建和填充,减少 API 调用。

插入行/列

// 在末尾插入一行
{
  "action": "insert_table_row",
  "doc_token": "ABC123def",
  "table_block_id": "doxcnTABLE",
  "row_index": -1,
  "column_size": 2
}

删除行/列

// 删除第 2 行
{
  "action": "delete_table_rows",
  "doc_token": "ABC123def",
  "table_block_id": "doxcnTABLE",
  "row_start": 1,
  "row_count": 1
}

合并单元格

{
  "action": "merge_table_cells",
  "doc_token": "ABC123def",
  "table_block_id": "doxcnTABLE",
  "row_start": 0,
  "row_end": 2,
  "column_start": 0,
  "column_end": 2
}

文件上传

上传图片

{
  "action": "upload_image",
  "doc_token": "ABC123def",
  "url": "https://example.com/image.png"
}

或从本地上传:

{
  "action": "upload_image",
  "doc_token": "ABC123def",
  "file_path": "/tmp/image.png",
  "index": 5
}

重要:小图片(<800px)显示会很小,建议先缩放!

上传文件附件

{
  "action": "upload_file",
  "doc_token": "ABC123def",
  "file_path": "/tmp/report.pdf",
  "filename": "Q1-report.pdf"
}

推荐工作流

读取文档

  1. 使用 read 获取纯文本
  2. 检查 block_types,如有表格/图片
  3. 使用 list_blocks 获取完整数据

创建文档

  1. create 创建文档(记得传 owner_open_id)
  2. write 写入初始内容
  3. create_table_with_values 添加表格
  4. upload_image 上传图片

重要注意事项

1. Markdown 表格限制

  • ❌ 不能用 write 写 Markdown 表格
  • ✅ 必须使用 create_tablecreate_table_with_values

2. 创建文档权限

  • 创建时必须传递 owner_open_id
  • 否则只有机器人有权限,用户无法访问

3. 图片尺寸

  • 小图片(<800px)显示会很小
  • 建议先缩放到 800px+ 再上传

4. 结构化内容

  • read 只返回纯文本
  • 需要表格/图片信息要用 list_blocks

最佳实践

1. 减少API调用

不推荐(两次调用):

// 1. 创建表格
{ "action": "create_table", ... }
// 2. 填充数据
{ "action": "write_table_cells", ... }

推荐(一次调用):

{ "action": "create_table_with_values", ... }

2. 先读取再修改

  1. 使用 list_blocks 了解文档结构
  2. 获取块 ID 和类型
  3. 进行精确的更新或删除

3. 权限管理

创建文档时从 inbound metadata 获取 sender_id:

{
  "action": "create",
  "owner_open_id": "从 sender_id 获取"
}

权限要求

需要的权限:

  • docx:document
  • docx:document:readonly
  • docx:document.block:convert
  • drive:drive

相关技能

  • feishu-wiki - 知识库操作(依赖 feishu_doc)
  • feishu-drive - 云空间文件管理
  • feishu-perm - 权限管理

学习总结

通过学习 feishu-doc 技能,我掌握了:

  1. Token 提取 - 从 URL 正确提取 doc_token
  2. Markdown 限制 - 表格需要专门的 API
  3. 权限管理 - 创建文档必须指定 owner
  4. 块操作 - 文档由块组成,可精确操作
  5. 表格操作 - 完整的 CRUD 操作
  6. 文件上传 - 图片和附件上传
  7. 工作流 - read → list_blocks 的标准流程

这个技能让我能够完全通过 API 操作飞书文档,非常适合自动化文档处理和批量操作!


学习时间:2026-03-05 技能版本:feishu-doc 学习笔记.learnings/feishu-doc-飞书文档操作-2026-03-05.md