Dingtalk File Send
自动将文件上传并发送至钉钉用户,基于当前会话账号绑定。
集成飞书文档、聊天、文件发送与定时提醒的AI助手工具。
openclaw skills install @ye4wzp/feishu-toolkit命令、参数、文件名以原文为准
一个面向 AI 代理的全面飞书(Lark)集成技能,涵盖六大核心功能:
- im:message:send_as_bot —— 发送消息
- im:resource —— 上传文件/图片
- docx:document —— 读写文档
- drive:permission —— 管理权限(可选)
FEISHU_APP_ID 和 FEISHU_APP_SECRET所有 API 调用使用飞书的租户访问令牌(tenant access token):
import requests
def get_tenant_token(app_id, app_secret):
r = requests.post(
'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal',
json={'app_id': app_id, 'app_secret': app_secret}
)
return r.json()['tenant_access_token']# 获取文档内容(Markdown 格式)
# 支持类型:doc、docx、sheet、bitable、wiki
GET /open-apis/docx/v1/documents/{document_id}/raw_contentPOST /open-apis/docx/v1/documents
Body: {"title": "我的文档"}# 使用 Markdown 内容覆盖整个文档
POST /open-apis/docx/v1/documents/{document_id}/blocks/batch_update对于超出 LLM 输出限制的长文档,请按以下步骤操作:
doc_tokenWiki 的链接需先转换为实际文档令牌:
POST /open-apis/wiki/v2/spaces/get_node
Body: {"token": "wiki_token"}
# 返回实际的 doc_token 和 doc_type从飞书群聊中获取并总结消息。
# GET /open-apis/im/v1/messages
params = {
'container_id_type': 'chat',
'container_id': chat_id,
'page_size': 50
}| 类型 | 处理方式 |
|---|---|
text | 提取 .body.content JSON → text 字段 |
interactive | 从 elements 数组中提取文本节点 |
image | 标记为 [图片] |
system | 除非相关,否则过滤掉 |
若返回 has_more=true,请使用 page_token 获取下一页数据。默认每页最多 50 条消息。
通过 REST API 将文件发送至飞书聊天。
# POST /open-apis/im/v1/files
headers = {'Authorization': f'Bearer {token}'}
data = {'file_type': 'stream', 'file_name': 'filename.ext'}
files = {'file': ('filename.ext', open(path, 'rb'), 'application/octet-stream')}支持的 file_type:opus、mp4、pdf、doc、xls、ppt、stream(通用类型)
# POST /open-apis/im/v1/messages
json = {
'receive_id': chat_id,
'msg_type': 'file',
'content': json.dumps({'file_key': file_key})
}在 macOS 上捕获截图并发送至飞书。
# 1. 捕获截图
SCREENSHOT_PATH="$TMPDIR/screenshot_$(date +%s).png"
screencapture -x "$SCREENSHOT_PATH"
# 2. 上传图片
# POST /open-apis/im/v1/images
# data: image_type=message, file=screenshot
# 3. 发送图片消息
# POST /open-apis/im/v1/messages
# msg_type: image, content: {"image_key": "..."}注意:macOS 上请使用
$TMPDIR,而非/tmp。
管理文档或文件的访问权限。
| 操作 | 描述 |
|---|---|
list | 列出所有协作者 |
add | 添加协作者并指定权限级别 |
remove | 移除某位协作者 |
doc、docx、sheet、bitable、folder、file、wiki、mindnote
email、openid、userid、unionid、openchat、opendepartmentid
| 等级 | 描述 |
|---|---|
view | 仅查看 |
edit | 可编辑 |
full_access | 完全访问(可管理权限) |
# POST /open-apis/drive/v1/permissions/{token}/members
params = {'type': 'docx'}
json = {
'member_type': 'email',
'member_id': 'user@company.com',
'perm': 'edit'
}注意:权限管理涉及敏感操作,请谨慎使用。
创建定时重复提醒并发送至飞书聊天。
务必与用户确认以下信息:
cron add \
--name "<任务名称>" \
--every "<间隔>" \
--session main \
--system-event "[CRON] <任务名称>。向飞书发送提醒:'<提醒内容>'"| 间隔 | 描述 |
|---|---|
1m | 每分钟 |
5m | 每 5 分钟 |
30m | 每 30 分钟 |
1h | 每小时 |
*/30 * * * * | Cron 表达式(配合 --tz 使用) |
cron list # 列出所有任务
cron edit <id> # 编辑任务
cron rm <id> # 删除任务(请先征询用户同意!)
cron runs --id <id> # 查看执行历史
cron run <id> # 手动触发执行| API | 方法 | 路径 |
|---|---|---|
| 企业令牌 | POST | /auth/v3/tenant_access_token/internal |
| 读取文档内容 | GET | /docx/v1/documents/{id}/raw_content |
| 创建文档 | POST | /docx/v1/documents |
| 发送消息 | POST | /im/v1/messages |
| 上传文件 | POST | /im/v1/files |
| 上传图片 | POST | /im/v1/images |
| 获取消息列表 | GET | /im/v1/messages |
| 管理权限 | POST | /drive/v1/permissions/{token}/members |
| 解析知识库节点 | POST | /wiki/v2/spaces/get_node |
基础 URL:https://open.feishu.cn/open-apis
Authorization 头部中携带 tenant_access_tokenmultipart/form-data 格式application/json 格式已收录 1 个 Skill