技能版本 1.0.0

wecomcli-media

企业微信媒体文件上传/下载技能。承接基于 media_id 下载媒体文件到本地,以及上传本地文件获取 media_id 两类操作。当其他技能(微盘、邮件等)返回了 media_id 需要落地为本地文件,或已有本地文件需要转换为 media_id 供其他技能使用时,必须先读取本技能获取完整指引,不得凭记忆处理。本技能不解析/识别文件内容,仅负责文件本身的搬运。

价格

免费

  • 安装:免费

在组织开通时一次性收取;再次读取清单或下载不重复收费。

以上为公开标价。你的组织可能有协议价,以控制台显示的价格为准。

如何使用

  1. 为组织安装

    开通即安装:组织固定使用开通时的版本(当前为 1.0.0)。升级到新版本需要取消后重新开通。

  2. 创建凭证

    客户端使用组织凭证读取;绑定到数字人后,数字人使用绑定凭证按需加载。请求中携带:

    Authorization: Bearer $ZGI_MARKET_KEY

  3. 读取清单与安装包

    清单列出版本、文件和校验值;安装包是一个 zip 文件。

    读取清单
    curl "https://market-api.zgi.im/v1/market/skills/wecomcli-media/manifest" \
      -H "Authorization: Bearer $ZGI_MARKET_KEY"
    下载安装包
    curl "https://market-api.zgi.im/v1/market/skills/wecomcli-media/package" \
      -H "Authorization: Bearer $ZGI_MARKET_KEY" \
      -o wecomcli-media.zip

    读取清单和下载安装包不计入用量。下载后请用响应头中的 SHA-256 校验文件。

技能说明

名称
wecomcli-media
说明
企业微信媒体文件上传/下载技能。承接基于 media_id 下载媒体文件到本地,以及上传本地文件获取 media_id 两类操作。当其他技能(微盘、邮件等)返回了 media_id 需要落地为本地文件,或已有本地文件需要转换为 media_id 供其他技能使用时,必须先读取本技能获取完整指引,不得凭记忆处理。本技能不解析/识别文件内容,仅负责文件本身的搬运。
仅指令

技能包内没有脚本文件:这个技能是供模型阅读的文本。

SKILL.md 节选

# 企业微信媒体文件

> 执行任何 `wecom-cli` 命令前,必须先读取并完成 `wecomcli-shared` 技能的公共前置检查。

资源型 skill,负责基于 `media_id` 下载媒体文件到本地,以及把本地文件上传为 `media_id`。是其他技能(微盘、邮件等)处理 `media_id` 相关操作的基础依赖:`upload` 会产出新的 `media_id`,但本 skill 不负责搜索/发现其他业务场景中已存在的 `media_id`(如邮件附件、微盘文件的 `media_id` 由对应业务技能产出),也不解析文件内容。

## 适用范围

### 适用

- 根据其他技能或用户提供的 `media_id` 下载媒体文件到本地
- 上传本地文件(本地路径已知)获取 `media_id`,供其他技能后续使用(如微盘上传素材)

### 不适用

- 解析/识别文件内容(正文提取、OCR、看图问答、PDF/Word/Excel 解析等) → 本 skill 只负责把文件下载到本地拿 `file_path`,如需查看内容请直接通过 `file_path` 读取该本地文件
- 搜索/发现其他业务场景中已存在的 `media_id`(如邮件附件、微盘文件列表/搜索等) → 由对应业务技能负责产出并返回 `media_id`,本 skill 只接收已有的 `media_id` 做下载;本地文件转`media_id` 的场景仍走本 skill 的 `upload`
- 编造或猜测 `media_id` / 本地文件路径 → 两者必须来自其他技能返回或用户明确提供,禁止自行构造

## 接口详述

### 下载媒体文件

根据 `media_id` 下载媒体文件到本地,返回本地文件路径。

**命令**

```bash
wecom-cli media download --json '{"media_id": "MEDIA_ID"}'
```

**入参**

| 字段 | 类型 | 必填 | 说明 |
|---|---|:----:|---|
| `media_id` | string | 是 | 文件的 `media_id`,由上传文件后获得,或由其他技能(邮件附件/内嵌图片等)返回 |

**返回**

| 字段 | 类型 | 说明 |
|---|---|---|
| `file_path` | string | 下载成功后的本地文件路径 |

**使用规则**

- 下载完成后如需查看文件内容,直接通过 `file_path` 读取该本地文件。
- 下载失败时返回错误码和错误信息。
- **`media_id` 必须是真正的 media_id,不接受任何形式的 URL**:若拿到的是一个链接(如 `attach_url`、正文里的图片/附件链接),**不要**把这个 URL 当作 `media_id` 传入本接口,会直接报错。尤其是命中 `work.weixin.qq.com/filepreview/security/` 特征的防泄漏加密链接,属于加密的、与用户身份绑定的资源,本接口**无法下载或解密**,应直接告知用户该文件受防泄漏策略保护,引导其点击链接、在企业微信客户端内打开查看/保存,不要尝试用本接口或其他手段绕过。

### 上传媒体文件

将本地文件上传,获取 `media_id`。

**命令**

```bash
wecom-cli media upload --json '{"file_path": "/tmp/example.pdf"}'
```

**入参**

| 字段 | 类型 | 必填 | 说明 |
|---|---|:----:|---|
| `file_path` | string | 是 | 需要上传的文件的本地路径 |

**返回**

| 字段 | 类型 | 说明 |
|---|---|---|
| `type` | string | 媒体类型:`image`(图片)/`voice`(语音)/`video`(视频)/`file`(文件) |
| `media_id` | string | 上传后的 `media_id`,供其他技能后续使用(如微盘`upload` 的 `file_content_media`) |
| `created_at` | string | 创建时间,格式:`YYYY-MM-DD HH:mm:ss`|

## 关键约束

- **`media_id` / `file_path` 不得编造**:`media_id` 必须来自上传结果、其他技能返回或用户明确提供;`file_path` 必须是真实存在的本地路径。两者都没有时用自然语言追问,禁止靠猜测凑一个。
- **不做内容解析**:本 skill 只负责文件的下载落地与上传,`download` 拿到 `file_path` 后如需查看内容,直接通过 `file_path` 读取,不在本 skill 职责范围内。
- **内部 ID 不外露**:`media_id` 仅用于后续接口调用,禁止直接展示给用户;下载后的本地 `file_path` 同样不展示给用户。

SKILL.md 不止这些内容,安装后可阅读全文。

技能包内容

共 1 个文件,合计 5.2 KiB

  • SKILL.md5.2 KiB

来源与审核

审核状态
尚未审核,内容来自上游来源
许可证
未说明

审核状态是平台对上架信息的记录,不构成对上游服务质量或可用性的担保。