feishu-search-doc
模块兼容:所有脚本均提供
.js和.mjs两个版本。优先使用.js,若报require is not defined错误则改用同名.mjs文件。
直接用 exec 执行,不要检查文件或环境。
依赖 API(飞书开放平台)
- 云文档搜索:
POST /open-apis/suite/docs-api/search/object - 知识库空间列表:
GET /open-apis/wiki/v2/spaces - 知识库子节点列表:
GET /open-apis/wiki/v2/spaces/:space_id/nodes - 云盘目录列表(按名称筛选):
GET /open-apis/drive/v1/files
命令
默认 all:并行搜索云文档(最多约 50 条)+ 按名称筛选知识库空间;可选叠加云盘筛选。
node ./search-doc.js --open-id "SENDER_OPEN_ID" --query "关键词" [--action all]
仅搜云文档(支持分页参数):
node ./search-doc.js --open-id "SENDER_OPEN_ID" --query "关键词" --action docs [--count 20] [--offset 0]
仅按名称筛选知识库空间(在已拉取的全量空间列表上本地匹配):
node ./search-doc.js --open-id "SENDER_OPEN_ID" --query "空间名" --action wiki_spaces
列出当前用户可见的全部知识库空间(无需 --query):
node ./search-doc.js --open-id "SENDER_OPEN_ID" --action list_wiki_spaces
在某一知识库空间下按标题筛选节点(默认只查一层子节点;--parent-node-token 省略表示根下子节点):
node ./search-doc.js --open-id "SENDER_OPEN_ID" --query "节点标题" --action wiki_nodes --wiki-space-id "SPACE_ID" [--parent-node-token "NODE_TOKEN"]
在知识库内浅层遍历子树按标题筛选(有 API 次数上限,默认 --max-visits 80):
node ./search-doc.js --open-id "SENDER_OPEN_ID" --query "标题" --action wiki_nodes --wiki-space-id "SPACE_ID" --deep [--max-visits 80]
在云盘某目录下按名称筛选(--folder-token 省略或空字符串表示根目录):
node ./search-doc.js --open-id "SENDER_OPEN_ID" --query "文件夹或文件名" --action drive [--folder-token "父目录TOKEN"]
在 all 模式下同时做云盘名称筛选(需显式打开,避免多余调用):
node ./search-doc.js --open-id "SENDER_OPEN_ID" --query "关键词" --action all --include-drive [--folder-token "父目录TOKEN"]
输出
脚本输出单行 JSON。将 reply 原样给用户;编排时优先使用:
- 云文档:
docs[]中的docs_token、docs_type、url - 知识库空间:
wiki_spaces[]中的space_id、name - 知识库节点:
wiki_nodes[]中的node_token、obj_type、create_doc_token(供feishu-create-doc的--wiki-node) - 云盘文件夹:
drive[]中type为folder的token(供--folder-token)
授权
若返回 {"error":"auth_required"} 或 {"error":"permission_required"},按与其他 feishu 技能相同方式调用 feishu-auth;若 JSON 含 required_scopes,将其用空格拼入 --scope 后执行 auth.js --auth-and-poll。