wecomteam/wecom-cli

wecomcli-media

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

View source
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

企业微信媒体文件

执行任何 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_idstring文件的 media_id,由上传文件后获得,或由其他技能(邮件附件/内嵌图片等)返回

返回

字段类型说明
file_pathstring下载成功后的本地文件路径

使用规则

  • 下载完成后如需查看文件内容,直接通过 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_pathstring需要上传的文件的本地路径

返回

字段类型说明
typestring媒体类型:image(图片)/voice(语音)/video(视频)/file(文件)
media_idstring上传后的 media_id,供其他技能后续使用(如微盘uploadfile_content_media
created_atstring创建时间,格式: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 同样不展示给用户。
  • CLI 报错原样转达:命令返回明确错误码时如实告知用户并给替代建议,禁止用 curl / python 等通用手段绕过 CLI 强行完成。

跨技能依赖

依赖场景说明
wecomcli-email邮件附件/内嵌图片的 media_id,使用本 skill 的 download 下载到本地后通过 file_path 读取
wecomcli-disk上传文件到微盘时若已有 media_id,直接作为 disk files uploadfile_content_media 使用,无需再走本 skill;若只有本地路径且需要先转成 media_id,可用本 skill 的 upload
参数缺失 / 意图不明确时,用自然语言追问让用户明确,不要瞎猜。
from this repository

More skills

All skills
wecomteam
Community

wecomcli-calendar

企业微信日程管理。当用户需要预约日程、预订会议室、查看/更新/取消日程或查忙闲时触发。本技能负责『日程』——即不含在线会议链接的安排(也涵盖纯线下面对面碰头);若用户要的是『在线会议』(含会议号/入会链接、可远程或视频参会),改用 wecomcli-meeting 技能。用户仅说'开会/约个会/某会'等、未明确要创建的是日程还是在线会议时,必须先读取本技能并按其中的消歧流程向用户追问确认后再处理,不可臆断直接创建。

installs
7
GitHub stars
3천
Updated
8월 25일
wecomteam
Community

wecomcli-contact

使用 wecom-cli 按姓名、拼音、英文名或别名搜索企业微信通讯录中的人员,并查询匹配人员的 userid、部门和职务。适用于查找联系人、区分同名人员、获取用户 userid,以及列出全部同名人员。

installs
7
GitHub stars
3천
Updated
8월 25일
wecomteam
Community

wecomcli-disk

企业微信微盘(Disk / 网盘)文件操作技能。承接"微盘 / 网盘"里的文件列出、搜索、读取元信息、上传、下载、重命名、新建文件夹操作。用户明确提到"微盘"/"网盘"/"共享空间"时必须先读取本技能获取完整指引,不得凭记忆处理。用户说"上传到微盘"、"帮我在微盘里搜一下 xxx"、"微盘那个 PPT 在哪"、"下载微盘那个文件"、"把微盘那个文件重命名成 xxx"、或直接给出 https://drive.weixin.qq.com/s?k=... 形式的微盘文件链接时使用本技能。与 wecomcli-doc / wecomcli-sheet / wecomcli-smartsheet / wecomcli-smartpage 的区别:本技能处理微盘里所有文件(含在线文档)的搜索/列表/基础信息/位置/路径/重命名等文件级操作;在线文档(doc/sheet/smartsheet/smartpage 类型)的内容读写走对应文档技能,不由本技能接管。当用户问「这个文档在微盘哪里」或问某文件在微盘的位置时,由本技能用 get 返回空间名/文件夹名/路径等元信息。

installs
7
GitHub stars
3천
Updated
8월 25일
wecomteam
Community

wecomcli-doc

企微 doc 内容操作技能,包含新建在线文档、导入、读取、追加、覆盖写入等功能。仅当用户明确指定 'doc'、'docx'、'word'、'在线文档'、'office文档',或提供 https://doc.weixin.qq.com/doc/xxx 链接时触发。本技能不处理未指明类型的“文档”请求;凡是“创建文档 / 写文档 / 整理成文档 / 输出到文档”等泛化表达,默认都必须路由到 wecomcli-smartpage(智能文档),本技能不得抢占。若请求包含字段、记录、筛选、排序、统计、分组等结构化数据语义,严禁用 doc + markdown 静态表格变通替代,应考虑使用智能文档或者智能表格。公共管理操作请使用 wecomcli-doc-manage;在线表格操作请使用 wecomcli-sheet;智能表格操作请使用 wecomcli-smartsheet。

installs
7
GitHub stars
3천
Updated
8월 25일