引言
飞书文档不只是"在线 Word",它还可以是团队知识库、API 文档、产品说明书。当你需要让 AI 自动生成文档、批量更新内容、或者从文档中提取信息时,feishu_doc 工具就是你的瑞士军刀。
本文深入解析 feishu_doc 的完整能力。
正文
文档操作基础
Token 提取与验证
// 从 URL 提取 doc_token
// URL 格式:https://xxx.feishu.cn/docx/XXXXXXXX
// doc_token = "XXXXXXXX"(不含前缀)
const doc_token = "doxcGeiFoh1thah"; // 示例
读取文档
const content = feishu_doc({
action: "read",
doc_token: "XXXXXXXX"
});
// 返回 Markdown 格式的文档内容
创建文档
const newDoc = feishu_doc({
action: "create",
title: "AI 自动生成的会议纪要",
folder_token: "folder_xxx" // 可选,放到指定文件夹
});
// 返回 { doc_token, url, ... }
内容写入模式
feishu_doc 有三种写入模式,理解它们的区别至关重要:
write——全量覆盖
// 警告:会覆盖文档所有现有内容
feishu_doc({
action: "write",
doc_token: "XXXXXXXX",
content: "# 新标题\n\n这是全新内容..."
});
append——追加写入
// 在文档末尾追加内容(最安全的写入方式)
feishu_doc({
action: "append",
doc_token: "XXXXXXXX",
content: "\n\n---\n\n## 补充信息\n\n新增的补充内容..."
});
insert——精确插入
// 在特定位置插入内容
feishu_doc({
action: "insert",
doc_token: "XXXXXXXX",
after_block_id: "oc_xxxxx", // 在哪个块之后插入
content: "## 新增章节\n\n插入的新内容..."
});
块操作——精细化文档编辑
feishu_doc 的底层是"块(Block)"模型,每个段落、标题、列表都是独立的块。
列出所有块
const blocks = feishu_doc({
action: "list_blocks",
doc_token: "XXXXXXXX"
});
// 返回块列表,每个块有 block_id 和类型
获取单个块
const block = feishu_doc({
action: "get_block",
doc_token: "XXXXXXXX",
block_id: "oc_xxxxx"
});
更新块内容
feishu_doc({
action: "update_block",
doc_token: "XXXXXXXX",
block_id: "oc_xxxxx",
content: "更新后的段落内容"
});
删除块
feishu_doc({
action: "delete_block",
doc_token: "XXXXXXXX",
block_id: "oc_xxxxx"
});
高级操作——表格与图片
创建表格
const table = feishu_doc({
action: "create_table",
doc_token: "XXXXXXXX",
row_size: 5, // 行数
column_size: 3, // 列数
column_width: [200, 300, 200] // 每列宽度(px)
});
写入表格数据
feishu_doc({
action: "write_table_cells",
doc_token: "XXXXXXXX",
table_block_id: "oc_table_xxx",
row_start: 0, // 从第 1 行开始
column_start: 0, // 从第 1 列开始
values: [
["姓名", "部门", "职位"],
["张三", "研发", "工程师"],
["李四", "产品", "经理"]
]
});
上传图片
// 从本地文件上传
feishu_doc({
action: "upload_image",
doc_token: "XXXXXXXX",
file_path: "/root/screenshot.png"
});
// 从网络 URL 上传
feishu_doc({
action: "upload_image",
doc_token: "XXXXXXXX",
url: "https://example.com/image.png"
});
实战案例——AI 自动生成 API 文档
async function generateAPIDoc(apiEndpoints) {
// 1. 创建文档
const doc = feishu_doc({
action: "create",
title: `API 文档 ${new Date().toLocaleDateString()}`
});
// 2. 生成文档内容
let content = `# ${apiEndpoints.title} API 文档\n\n`;
content += `> 生成时间:${new Date().toISOString()}\n\n`;
content += `## 概述\n\n${apiEndpoints.description}\n\n`;
// 3. 遍历端点生成文档
for (const endpoint of apiEndpoints.endpoints) {
content += `## ${endpoint.method} ${endpoint.path}\n\n`;
content += `**描述**:${endpoint.description}\n\n`;
content += `**请求参数**:\n`;
content += generateParamTable(endpoint.params);
content += `\n**响应示例**:\n`;
content += `\`\`\`json\n${JSON.stringify(endpoint.responseExample, null, 2)}\n\`\`\`\n\n`;
content += `---\n\n`;
}
// 4. 写入文档
feishu_doc({
action: "write",
doc_token: doc.doc_token,
content: content
});
return doc;
}
总结
feishu_doc 提供了从"整体覆盖"到"块级编辑"的完整能力。write 是全量替换,append 是安全追加,insert 是精确插入,块操作是底层精细控制。配合文档模板和 AI 内容生成,可以实现技术文档、API 文档、会议纪要的自动化生产。
下期预告:文档和表格讲完了,下一个是消息系统——message 工具让你跨平台发送消息!
互动话题
你有什么文档需要定期更新但手动操作很麻烦的?周报、会议纪要、还是接口文档?用 feishu_doc 能不能实现自动化?
夜雨聆风