| name | feishu-fetch-doc |
| description | 读取**飞书在线云文档**(URL 含 `/docx/` 或 `/docs/`,或 Wiki 节点 obj_type=docx/doc)内容,返回 Markdown。
**不处理云盘附件文件**(Word .docx/PDF/Excel 等二进制文件)—— 那种请用 feishu-docx-download。
|
| overrides | feishu_fetch_doc, feishu_wiki_space_node, feishu_pre_auth |
| inline | true |
feishu-fetch-doc
模块兼容:所有脚本均提供 .js 和 .mjs 两个版本。优先使用 .js,若报 require is not defined 错误则改用同名 .mjs 文件。
直接用 exec 执行,不要检查文件或环境。
命令
node ./fetch-doc.js --open-id "SENDER_OPEN_ID" --doc-id "文档TOKEN或URL"
若为 wiki 链接,加 --wiki。脚本自动从 URL 解析 token。
适用范围(先判断再调用)
| 用户描述 | 是否用本技能 |
|---|
「读取这个文档」+ URL 含 /docx/ 或 /docs/ | ✅ 用本技能 |
| 「读取 wiki 文档」+ Wiki 节点 obj_type=docx/doc | ✅ 用本技能 |
| 「读取/下载云盘里的 Word/PDF/Excel 文件」 | ❌ 用 feishu-docx-download |
| 「读取我那个 .docx / .pdf 文件」 | ❌ 用 feishu-docx-download |
| Wiki 节点 obj_type=file(附件文件) | ❌ 用 feishu-docx-download |
⚠️ 「Word 文档」≠ 飞书在线 docx:用户说"Word 文档"通常指 .docx 二进制文件(云盘附件),应走 feishu-docx-download。
用户只提供文档标题时
如果用户只提供了文档标题而非链接或 token,必须先用 feishu-search-doc 搜索,从结果中取得文档 token 后再执行本脚本:
node ../feishu-search-doc/search-doc.js --open-id "SENDER_OPEN_ID" --query "文档标题"
从搜索结果中找到匹配的文档 token(doc_token 字段),再传给 --doc-id。不要因为缺少 token 就向用户询问,应主动搜索。
必须确认的参数
| 参数 | 何时询问 |
|---|
--doc-id | 用户未提供文档链接或 token,且通过 feishu-search-doc 搜索后仍无法确定目标文档时 |
输出
脚本返回 JSON,将 markdown 字段内容展示给用户。
授权
若返回 {"error":"auth_required"} 或 {"error":"permission_required"},不要询问用户是否授权,直接立即执行以下命令发送授权链接:
- 若返回 JSON 中包含
required_scopes 字段,将其数组值用空格拼接后传入 --scope 参数:
node ../feishu-auth/auth.js --auth-and-poll --open-id "SENDER_OPEN_ID" --chat-id "CHAT_ID" --timeout 60 --scope "<required_scopes 用空格拼接>"
-
若返回中不包含 required_scopes,则不加 --scope 参数(使用默认权限)。
-
{"status":"authorized"} → 重新执行原始命令
-
{"status":"polling_timeout"} → 立即重新执行此 auth 命令(不会重复发卡片)
-
CHAT_ID 不知道可省略
权限不足时(应用级)
若返回中包含 "auth_type":"tenant",说明需要管理员在飞书开放平台开通应用权限,必须将 reply 字段内容原样发送给用户。
文件类型不支持时
若返回 {"error":"unsupported_type"} 且 hint 字段提示使用 feishu-docx-download,说明该文档是附件文件(Word、PDF 等),不是在线云文档。必须立即改用 feishu-docx-download 技能处理,不要放弃或自行总结。