Feishu File Manager | 飞书文件管理器
name: feishu-file-manager
by caspian9 · published 2026-03-22
$ claw add gh:caspian9/caspian9-feishu-file-manager---
name: feishu-file-manager
description: |
飞书云盘文件管理技能。用于读取、下载和管理飞书云盘中的文件。
当用户需要:访问飞书文件、下载文档、读取PDF/Word/PPT文件、分析飞书云盘内容时使用。
核心方法:使用 tenant_access_token 调用 Drive API 下载文件,解析内容返回给用户。
---
# Feishu File Manager | 飞书文件管理器
快速开始
1. 获取凭据
飞书凭据在 `~/.openclaw/openclaw.json` 中:
{
"channels": {
"feishu": {
"appId": "cli_xxx",
"appSecret": "xxx"
}
}
}2. 获取 Token
curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d '{"app_id": "cli_xxx", "app_secret": "xxx"}'返回:`{"tenant_access_token": "t-xxx", "expire": 7200, "msg": "ok"}`
**Token 有效期**:约 2 小时,超时后重新获取
3. 访问文件
#### 3.1 从链接提取文件 Token
| 链接格式 | Token 位置 |
|----------|------------|
| `/file/XXXXX` | `XXXXX` |
| `/docx/XXXXX` | `XXXXX` |
| `/drive/folder/XXXXX` | `XXXXX` |
#### 3.2 下载文件
curl -s -X GET 'https://open.feishu.cn/open-apis/drive/v1/files/{file_token}/download' \
-H 'Authorization: Bearer {tenant_access_token}' \
-o /tmp/filename.ext#### 3.3 读取内容
| 文件类型 | 读取方法 |
|----------|----------|
| .docx | Python unzip 解析 `word/document.xml` |
| .pdf | pdftotext 或 pdf 工具 |
| .pptx | python-pptx 库 |
| .xlsx | openpyxl 库 |
权限清单 | Required Permissions
云盘 Drive
| 权限 scope | 说明 |
|-----------|------|
| `drive:drive` | 云盘能力总览 |
| `drive:file` | 文件基础操作 |
| `drive:file:readonly` | 只读文件 |
| `drive:file:download` | 下载文件 |
| `drive:drive:readonly` | 只读云盘元信息 |
文档 Docx
| 权限 scope | 说明 |
|-----------|------|
| `docx:document` | 文档基础能力 |
| `docx:document:readonly` | 只读文档内容 |
| `docx:document:write_only` | 写入文档 |
表格 Sheets
| 权限 scope | 说明 |
|-----------|------|
| `sheets:spreadsheet` | 表格基础能力 |
| `sheets:spreadsheet:read` | 读取表格 |
多维表格 Bitable
| 权限 scope | 说明 |
|-----------|------|
| `bitable:app` | 多维表格应用 |
| `bitable:app:readonly` | 只读多维表格 |
知识库 Wiki
| 权限 scope | 说明 |
|-----------|------|
| `wiki:wiki` | 知识库基础 |
| `wiki:node:read` | 读取知识库节点 |
验证方法 | Validation
验证 Token 有效性
curl -s 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d '{"app_id": "cli_xxx", "app_secret": "xxx"}'验证文件访问权限
curl -s 'https://open.feishu.cn/open-apis/drive/v1/files/{file_token}' \
-H 'Authorization: Bearer {token}'验证文件夹访问
curl -s 'https://open.feishu.cn/open-apis/drive/v1/files?parent_node={folder_token}' \
-H 'Authorization: Bearer {token}'错误处理 | Error Handling
| 错误码 | 含义 | 解决方案 |
|--------|------|----------|
| 99 | 文件不存在/无权限 | 检查 token 或文件是否分享给机器人 |
| 404 | API 路径错误 | 检查 API URL |
| 401 | Token 过期 | 重新获取 tenant_access_token |
| 10001 | 系统错误 | 稍后重试 |
文件读取示例
Python 读取 DOCX
from zipfile import ZipFile
import re
def read_docx(filepath):
with ZipFile(filepath) as z:
with z.open('word/document.xml') as f:
content = f.read().decode('utf-8')
text = re.sub(r'<[^>]+>', '', content)
return ' '.join(text.split())读取 PDF
pdftotext file.pdf - | head -100读取 PPTX
from pptx import Presentation
def read_pptx(filepath):
prs = Presentation(filepath)
text = []
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text"):
text.append(shape.text)
return '\n'.join(text)工作流总结
1. **获取/刷新 token** → 调用 auth API
2. **提取文件 token** → 从飞书链接解析
3. **下载文件** → 调用 drive API
4. **解析内容** → 根据文件类型选择解析方法
5. **返回结果** → 给用户
注意事项
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...