Feishu IM Read
用于获取飞书聊天记录、话题回复及资源下载的自动化工具。
通过 OpenAPI 读写飞书表格并下载云文件,支持 PDF 文本提取。
openclaw skills install @mli-cj/feishu-lark-sheets-edit命令、参数、文件名以原文为准
通过调用官方 OpenAPI,从本地脚本读取、写入并管理飞书/钉钉表格,并下载飞书/钉钉云文件。
python3 且在 PATH 路径中~/.openclaw/openclaw.json 文件的 channels.feishu 字段下:{
"channels": {
"feishu": {
"appId": "cli_xxx",
"appSecret": "xxx",
"domain": "feishu"
}
}
}示例 URL:
https://.../sheets/YOUR_SPREADSHEET_TOKEN?sheet=SHEET_ID
spreadsheet_token = YOUR_SPREADSHEET_TOKENsheet 查询参数(通常为 sheetId)= SHEET_ID# 将单个区域导出为 CSV
python3 {baseDir}/scripts/sheets_export.py \
--token YOUR_SPREADSHEET_TOKEN \
--range 'SHEET_ID!A1:Z200' \
--csv /tmp/sheet.csv
# 或导出为 JSON(推荐用于多区域)
python3 {baseDir}/scripts/sheets_export.py \
--url 'https://xxx.larksuite.com/sheets/YOUR_SPREADSHEET_TOKEN?sheet=SHEET_ID' \
--range 'SHEET_ID!A1:Z200' \
--json /tmp/sheet.json导出后,可加载 /tmp/sheet.csv 或 /tmp/sheet.json 文件进行后续分析或摘要处理。
# 列出所有工作表标签
python3 {baseDir}/scripts/sheets_write.py \
--token YOUR_SPREADSHEET_TOKEN list-sheets
# 向单个区域写入值
python3 {baseDir}/scripts/sheets_write.py \
--token YOUR_SPREADSHEET_TOKEN \
write --range 'SheetId!A1:C2' --values '[["a","b","c"],["d","e","f"]]'
# 从 JSON 文件写入值
python3 {baseDir}/scripts/sheets_write.py \
--token YOUR_SPREADSHEET_TOKEN \
write --range 'SheetId!A1:C2' --values-file /tmp/data.json
# 批量写入多个区域
python3 {baseDir}/scripts/sheets_write.py \
--token YOUR_SPREADSHEET_TOKEN \
batch-write --batch '[{"range":"Sheet1!A1:B1","values":[["x","y"]]},{"range":"Sheet1!A2:B2","values":[["1","2"]]}]'
# 添加新工作表标签
python3 {baseDir}/scripts/sheets_write.py \
--token YOUR_SPREADSHEET_TOKEN \
add-sheet --title 'NewSheet'
# 克隆现有工作表内容到新标签
python3 {baseDir}/scripts/sheets_write.py \
--token YOUR_SPREADSHEET_TOKEN \
clone-sheet --source-sheet-id abc123 --title 'ClonedSheet' --clone-range 'A1:Z200'--token两个脚本均支持使用 --url 自动提取表格 token:
python3 {baseDir}/scripts/sheets_write.py \
--url 'https://xxx.larksuite.com/sheets/YOUR_SPREADSHEET_TOKEN?sheet=SHEET_ID' \
write --range 'SHEET_ID!A1:B1' --values '[["hello","world"]]'从飞书/钉钉云盘下载文件(PDF、文档等)。
示例 URL:
https://.../file/YOUR_FILE_TOKEN
file_token = YOUR_FILE_TOKEN# 通过 URL 下载(PDF 文件会自动提取文本至 .txt 文件)
python3 {baseDir}/scripts/file_download.py \
--url "https://.../file/YOUR_FILE_TOKEN" \
--out /tmp/report.pdf
# 直接通过文件 token 下载
python3 {baseDir}/scripts/file_download.py \
--file-token YOUR_FILE_TOKEN \
--out /tmp/report.pdf
# 强制对非 PDF 文件提取文本
python3 {baseDir}/scripts/file_download.py \
--file-token YOUR_FILE_TOKEN \
--out /tmp/document.bin --extract-text当 --out 输出路径以 .pdf 结尾时,脚本会 自动执行以下操作:
.txt 文件(如:/tmp/report.pdf → /tmp/report.txt)_images/ 目录(如:/tmp/report_images/img-000.png 等)_pages/ 目录以供视觉查看文本提取优先级顺序: pdfplumber → pypdf → pdftotext(poppler)。所有 Python 依赖包会在首次使用时通过 pip 自动安装。内置乱码检测机制——若提取文本不可读(如扫描件、特殊字体),将自动渲染页面为图像。
图片提取优先级顺序: pypdf → pdfimages(poppler)。
页面渲染(乱码降级方案): pymupdf → pdf2image。
典型使用流程如下:
/tmp/report.txt/tmp/report_pages/ 中的页面图像(AI 视觉识别)/tmp/report_images/ 中的嵌入图片,用于图表、示意图等内容分析对于非 PDF 文件,可使用 --extract-text 强制触发文本提取。
| 子命令 | 描述 | 关键参数 |
|---|---|---|
list-sheets | 列出所有工作表标签(ID、标题、索引) | — |
write | 向单个区域写入数据 | --range, --values 或 --values-file |
batch-write | 一次性批量写入多个区域 | --batch 或 --batch-file |
add-sheet | 创建一个新的空白工作表标签 | --title |
clone-sheet | 将现有工作表内容克隆到新标签 | --source-sheet-id, --title, --clone-range |
所有子命令均支持 --dry-run 参数,用于预览操作而不会实际执行。
"{sheetId}!A1:Z200" 或 "{sheetTitle}!A1:Z200" 格式。 - 如果不知道工作表标题,可先使用 list-sheets 命令查询,或从 URL 中获取 sheet= 参数值。
[["a","b"],["c","d"]]。~/.openclaw/openclaw.json 读取 appId/appSecret。请勿在聊天中打印或粘贴这些凭证。- 确认目标表格或文件已共享给应用/机器人身份。
- 确认 Lark/Feishu 应用已在开发者控制台中启用相应权限(如“表格读写”、“驱动文件下载”)。
values_batch_get failed / values_batch_update failed 返回非零错误码:** - 多数情况是范围字符串格式错误。尝试缩小范围,或通过 list-sheets 验证 sheetId 或 sheetTitle 是否正确。
addSheet failed:**- 可能是工作表标题已存在。同一文档内工作表标题必须唯一。
本技能仅向以下 Lark/Feishu OpenAPI 接口发起外联请求:
| URL | 用途 |
|---|---|
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal | 获取租户访问令牌 |
https://open.feishu.cn/open-apis/sheets/v3/spreadsheets/*/sheets/query | 查询工作表标签页列表 |
https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/*/values_batch_get | 读取单元格数值 |
https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/*/values_batch_update | 写入单元格数值 |
https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/*/sheets_batch_update | 添加或管理工作表标签页 |
https://open.feishu.cn/open-apis/drive/v1/files/*/download | 下载文件内容 |
对于使用国际版 Lark 的用户,基础地址应为 https://open.larksuite.com。
appId/appSecret 从 ~/.openclaw/openclaw.json 读取,仅用于向官方 Feishu/Lark OpenAPI 发起令牌交换请求。已收录 1 个 Skill