乐于分享
好东西不私藏

【66】AI帮你写周报+自动更新文档:飞书文档的正确打开方式

【66】AI帮你写周报+自动更新文档:飞书文档的正确打开方式

引言

飞书文档不只是"在线 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 能不能实现自动化?