ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

dingtalk-csa

钉盘助手 (DingTalk Cloud Storage Assistant) - 管理钉钉云盘空间、文件和文档。用当用户要求读写钉盘文件、管理团队空间、上传下载文档、操作adoc文档时触发。也适用于钉钉文件分析、报告生成、团队协作等场景。触发词:钉盘、钉钉云盘、DingTalk storage、钉钉文件、钉钉文档。

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/andylikescodes/dingtalk-csa
Or

钉盘助手 DingTalk Cloud Storage Assistant

管理钉钉云盘:团队空间、文件上传下载、钉钉文档读写、团队协作。

🔒 安全模型:读任意,写受限

核心原则:AI 可以读取任何可访问的空间,但只能写入指定的文件夹。

这确保了:

  • ✅ AI 可以读取团队共享文件(用于分析、总结等)
  • ✅ AI 只能在预批准的协作文件夹中写入
  • ❌ 重要文件不会被意外修改或覆盖

配置写入白名单

在 SKILL.md 的 ALLOWED_WRITE_PATHS 中配置允许写入的位置:

# === 写入白名单 ===
# AI 只能写入以下位置
ALLOWED_WRITE_PATHS:
  - spaceId: "YOUR_SPACE_ID"
    parentDentryId: "YOUR_FOLDER_ID"
    path: "/AI_Collab"
    description: "AI协作文件夹 - AI只允许写入此文件夹"

执行规则:

  1. 读取:允许访问任何空间/文件夹 ✅
  2. 写入(上传文件、创建文档、创建文件夹):仅在白名单内 ✅
  3. 删除:不允许 ❌
  4. 任何写入操作前,必须先检查目标路径是否在白名单中

🔑 认证

所有 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 — 钉钉应用的 AppKey
  • DINGTALK_APP_SECRET — 钉钉应用的 AppSecret(⚠️ 绝不要明文写在代码或配置文件中)

Token 有效期 2 小时,请缓存避免重复请求。

核心操作

1. 列出空间(读 ✅)

# 企业空间
curl -X GET "https://api.dingtalk.com/v1.0/drive/spaces?unionId=<unionId>&spaceType=org&maxResults=50" \
  -H "x-acs-dingtalk-access-token: <TOKEN>"

2. 列出文件(读 ✅)

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>"}'

3. 读取文档内容(读 ✅)

.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>"

4. 写入文档内容(写 ⚠️ 检查白名单)

# 覆写整个文档(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"}}'

5. 创建文件夹(写 ⚠️ 检查白名单)

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"}'

6. 上传文件(写 ⚠️ 检查白名单)

3步流程,详见 references/upload-guide.md

7. 下载文件(读 ✅)

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}}'

必需权限

详见 references/permissions.md

Metadata

Stars4473
Views0
Updated2026-05-01
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-andylikescodes-dingtalk-csa": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.