Install
openclaw skills install dingtalk-csa钉盘助手 (DingTalk Cloud Storage Assistant) - 管理钉钉云盘空间、文件和文档。用当用户要求读写钉盘文件、管理团队空间、上传下载文档、操作adoc文档时触发。也适用于钉钉文件分析、报告生成、团队协作等场景。触发词:钉盘、钉钉云盘、DingTalk storage、钉钉文件、钉钉文档。
openclaw skills install dingtalk-csa管理钉钉云盘:团队空间、文件上传下载、钉钉文档读写、团队协作。
核心原则:AI 可以读取任何可访问的空间,但只能写入指定的文件夹。
这确保了:
在 SKILL.md 的 ALLOWED_WRITE_PATHS 中配置允许写入的位置:
# === 写入白名单 ===
# AI 只能写入以下位置
ALLOWED_WRITE_PATHS:
- spaceId: "YOUR_SPACE_ID"
parentDentryId: "YOUR_FOLDER_ID"
path: "/AI_Collab"
description: "AI协作文件夹 - AI只允许写入此文件夹"
执行规则:
所有 API 调用需要 access token,通过以下方式获取:
curl -X POST 'https://api.dingtalk.com/v1.0/oauth2/accessToken' \
-H 'Content-Type: application/json' \
-d '{"appKey": "'"$DINGTALK_APP_KEY"'", "appSecret": "'"$DINGTALK_APP_SECRET"'"}'
环境变量配置:
DINGTALK_APP_KEY — 钉钉应用的 AppKeyDINGTALK_APP_SECRET — 钉钉应用的 AppSecret(⚠️ 绝不要明文写在代码或配置文件中)Token 有效期 2 小时,请缓存避免重复请求。
# 企业空间
curl -X GET "https://api.dingtalk.com/v1.0/drive/spaces?unionId=<unionId>&spaceType=org&maxResults=50" \
-H "x-acs-dingtalk-access-token: <TOKEN>"
curl -X POST "https://api.dingtalk.com/v1.0/storage/spaces/{spaceId}/dentries/listAll" \
-H "x-acs-dingtalk-access-token: <TOKEN>" \
-H 'Content-Type: application/json' \
-d '{"unionId": "<unionId>"}'
.adoc 格式的钉钉文档,用 uuid 作为 documentId:
curl -X GET "https://api.dingtalk.com/v1.0/doc/suites/documents/{documentId}/blocks?operatorId=<unionId>" \
-H "x-acs-dingtalk-access-token: <TOKEN>"
# 覆写整个文档(Markdown格式)
curl -X POST "https://api.dingtalk.com/v1.0/doc/suites/documents/{documentId}/overwriteContent?operatorId=<unionId>" \
-H "x-acs-dingtalk-access-token: <TOKEN>" \
-H 'Content-Type: application/json' \
-d '{"content": "# Markdown Content", "dataType": "markdown"}'
# 追加内容到文档
curl -X POST "https://api.dingtalk.com/v1.0/doc/suites/documents/{documentId}/content?operatorId=<unionId>" \
-H "x-acs-dingtalk-access-token: <TOKEN>" \
-H 'Content-Type: application/json' \
-d '{"content": {"type": "markdown", "content": "## New Section"}}'
curl -X POST "https://api.dingtalk.com/v1.0/storage/spaces/{spaceId}/dentries/{parentId}/folders" \
-H "x-acs-dingtalk-access-token: <TOKEN>" \
-H 'Content-Type: application/json' \
-d '{"unionId": "<unionId>", "name": "New Folder"}'
3步流程,详见 references/upload-guide.md
curl -X POST "https://api.dingtalk.com/v1.0/storage/spaces/{spaceId}/dentries/{dentryId}/downloadInfos/query?unionId=<unionId>" \
-H "x-acs-dingtalk-access-token: <TOKEN>" \
-H 'Content-Type: application/json' \
-d '{"option": {"version": 1}}'
核心权限(7个):
Storage.Space.Read - 钉盘应用盘空间读Storage.Space.Write - 钉盘应用盘空间写Storage.File.Read - 钉盘应用文件读Storage.File.Write - 钉盘应用文件写Storage.UploadInfo.Read - 钉盘上传信息读Storage.DownloadInfo.Read - 钉盘下载信息读企业存储文件下载信息读权限 - 企业存储文件下载(配合#6)