/install dingtalk-send-media
\r \r
DingTalk Send Media\r
\r
使用同目录脚本 scripts/send_media.py 发送钉钉媒体消息。OpenClaw 不会自动执行目录中的 .py 文件;命中本 skill 后,应显式调用脚本。\r
\r
触发场景\r
\r 在这些场景使用本 skill:\r \r
- 用户要求把本地文件、图片、截图、录音、视频、压缩包发到钉钉\r
- 用户要求发送给某个钉钉用户 ID,或发送到某个钉钉群 ID\r
- 当前上下文已明确是钉钉账号或钉钉会话,且目标是“发送附件”\r \r 不要在这些场景使用本 skill:\r \r
- 用户想编辑钉钉文档正文或知识库内容\r
- 用户只说“发给他”但没有文件路径、目标 ID,且上下文无法补全\r
- 与钉钉无关的发送场景,例如邮件附件、飞书文件、Slack 上传\r \r
运行前提\r
\r
脚本依赖 python 或 python3。\r
\r
可用配置来源:\r
\r
- 环境变量
DINGTALK_CLIENTID+DINGTALK_CLIENTSECRET,优先级最高\r openclaw.json中的channels.dingtalk.accounts\ropenclaw.json中的channels.dingtalk-connector.accounts\ropenclaw.json中的channels.dingtalk-connector顶层凭证\r \r 相关环境变量:\r \r
DINGTALK_CLIENTID\rDINGTALK_CLIENTSECRET\rDINGTALK_ROBOTCODE\rDINGTALK_CORPID\rDINGTALK_AGENTID\rOPENCLAW_AGENT_ID\rOPENCLAW_ACCOUNT_ID\rOPENCLAW_CONFIG\r \r
执行入口\r
\r
脚本文件:scripts/send_media.py\r
\r
执行时使用绝对路径,形式如下:\r
\r
python /absolute/path/to/scripts/send_media.py \x3Cfile-path> \x3Ctarget-id> [account-id] [media-type] [--group|--user] [--debug]\r
```\r
\r
在 Linux 或 macOS 上,如果只有 `python3`,使用:\r
\r
```bash\r
python3 /absolute/path/to/scripts/send_media.py \x3Cfile-path> \x3Ctarget-id> [account-id] [media-type] [--group|--user] [--debug]\r
```\r
\r
## 发送前检查\r
\r
执行前尽量确认这些信息:\r
\r
- 文件路径存在,且是本机可访问的绝对路径\r
- 目标 ID 是钉钉用户 ID,或以 `cid` 开头的群 ID\r
- 如果存在多个钉钉账号,确认应该使用哪个账号\r
- 如果用户没有指定媒体类型,可以让脚本自动检测\r
- 默认会将 `cid...` 自动识别为群聊;如需覆盖,可使用 `--group` 或 `--user`\r
\r
## 命令映射\r
\r
### 1. 自动检测账号并发送\r
\r
适用:\r
\r
- 当前只有一个账号\r
- 或者已能从 `OPENCLAW_AGENT_ID` / `OPENCLAW_ACCOUNT_ID` / bindings 推导账号\r
\r
执行:\r
\r
```bash\r
python /absolute/path/to/scripts/send_media.py \x3Cfile-path> \x3Ctarget-id>\r
```\r
\r
说明:\r
\r
- 若 `target-id` 以 `cid` 开头,脚本会自动按群聊发送\r
- 其他目标默认按单聊发送\r
\r
### 2. 指定账号发送\r
\r
适用:\r
\r
- 存在多个钉钉账号\r
- 用户明确要求用某个账号发送\r
\r
执行:\r
\r
```bash\r
python /absolute/path/to/scripts/send_media.py \x3Cfile-path> \x3Ctarget-id> \x3Caccount-id>\r
```\r
\r
### 3. 指定媒体类型发送\r
\r
适用:\r
\r
- 自动检测类型不可靠\r
- 用户明确要求按图片、语音、视频或普通文件发送\r
\r
执行:\r
\r
```bash\r
python /absolute/path/to/scripts/send_media.py \x3Cfile-path> \x3Ctarget-id> \x3Caccount-id-or-type> [media-type]\r
```\r
\r
媒体类型仅允许:\r
\r
- `image`\r
- `voice`\r
- `video`\r
- `file`\r
\r
### 4. 显式指定群聊或单聊\r
\r
适用:\r
\r
- 目标 ID 规则不稳定,不能只靠 `cid` 判断\r
- 你想覆盖自动检测结果\r
\r
执行:\r
\r
```bash\r
python /absolute/path/to/scripts/send_media.py \x3Cfile-path> \x3Ctarget-id> [account-id] [media-type] --group\r
python /absolute/path/to/scripts/send_media.py \x3Cfile-path> \x3Ctarget-id> [account-id] [media-type] --user\r
```\r
\r
### 5. 调试模式\r
\r
适用:\r
\r
- 账号检测或配置选择异常\r
\r
执行:\r
\r
```bash\r
python /absolute/path/to/scripts/send_media.py \x3Cfile-path> \x3Ctarget-id> --debug\r
```\r
\r
## 工作流程\r
\r
1. 确认目标是钉钉发送媒体,而不是文档编辑。\r
2. 提取文件路径和目标 ID。\r
3. 如有多个账号或上下文不明确,优先确认账号。\r
4. 执行脚本。\r
5. 若脚本返回 `ok: true`,向用户报告已发送的文件名、目标和账号。\r
6. 若脚本返回 `ok: false`,根据错误内容给出下一步说明。\r
\r
## 常见错误\r
\r
- `未找到 OpenClaw 配置文件 openclaw.json`:当前无配置文件,需提供环境变量凭证或配置文件\r
- `未找到钉钉账号配置`:账号自动检测失败,需显式指定账号或补齐配置\r
- `获取 access token 失败`:检查 `clientId` / `clientSecret`\r
- `上传媒体文件失败`:检查文件路径、大小、媒体类型和上传权限\r
- `发送消息失败`:检查目标用户 ID / 群 ID、机器人权限和 `robotCode`\r
\r
## 限制\r
\r
- 本 skill 用于发送媒体,不用于编辑钉钉文档内容\r
- 需要本机已有可发送的文件路径\r
- 群聊发送要求目标是合法 `cid...`\r
- 多账号场景下,若无法唯一推导账号,可能需要显式传入 `account-id`\r
\r
## 参考\r
\r
- 人工说明文档:`README.md`\r
- 实际执行脚本:`scripts/send_media.py`
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install dingtalk-send-media - After installation, invoke the skill by name or use
/dingtalk-send-media - Provide required inputs per the skill's parameter spec and get structured output
What is dingtalk-send-media?
发送钉钉媒体文件给用户或群聊。仅在用户明确要求把本地文件、截图、录音、视频、附件发送到钉钉,或当前上下文已明确是钉钉会话时使用。通过 `scripts/send_media.py` 执行,支持 image/voice/video/file 等。 It is an AI Agent Skill for Claude Code / OpenClaw, with 145 downloads so far.
How do I install dingtalk-send-media?
Run "/install dingtalk-send-media" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is dingtalk-send-media free?
Yes, dingtalk-send-media is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does dingtalk-send-media support?
dingtalk-send-media is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created dingtalk-send-media?
It is built and maintained by Ash (@shyzhen); the current version is v1.0.1.