公众号素材
这篇解决什么
图片、语音、视频存在哪、mediaId 怎么来。读完能对上 mp_material 的永久/临时标记,不要把图文草稿当成素材行。
默认端口 48080。先接入账号见 公众号接入。图文见 公众号图文。
示意图:先换微信 mediaId,再把副本存文件服务,最后写本地行。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 素材 | @RequestMapping("/mp/material") | ruoyi-office/yudao-module-mp/yudao-module-mp-server/.../controller/admin/material/MpMaterialController.java |
| 临时上传 | POST /upload-temporary | 微信 mediaUpload |
| 永久上传 | POST /upload-permanent | 微信 materialFileUpload |
| 图文插图 | POST /upload-news-image | 只回微信 URL,不入库 |
| 素材表 | mp_material | MpMaterialDO |
| 管理端 | 图片 / 语音 / 视频 Tab | ruoyi-office-vben/apps/web-antd/src/views/mp/material/ |
官方菜单:素材管理 2113。权限 mp:material:upload-temporary、upload-permanent、delete、upload-news-image。
type 是微信 MediaFileType 字符串:image、voice、video、thumb。表里没有 news 行。管理页只分页永久素材。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
mediaId | 微信素材编号 | MpMaterialDO |
type | image / voice / video / thumb | 同上 |
permanent | true 永久,false 临时 | 同上 |
url | 文件服务副本 | 同上 |
mpUrl | 微信侧地址,仅永久 | 同上 |
title / introduction | 仅永久视频 | 同上 |
临时素材微信侧大约 3 天失效。删除接口只处理永久:先调微信 materialDelete,再删库。收消息缺记录时,downloadMaterialUrl 会补一条临时行。
自动回复、菜单点选临时素材走 /upload-temporary。草稿封面走永久图片。图文正文插图走 /upload-news-image,不进本表。
图文不在这张表
草稿和发表记录在微信服务器,见 公众号图文。不要虚构 mp_article,也不要给 type 写成 news。
选素材组件是共用的
views/mp/components/wx-material-select 给自动回复、菜单、草稿封面复用。分页仍打 /mp/material/page。
按本仓库 DO 生成的 ER。一行对应一个微信 mediaId。
配置与操作
走 素材管理(2113,/mp/material)。先选账号,再按 Tab 上传图片 / 语音 / 视频。列表只分页永久素材。权限 mp:material:upload-temporary、upload-permanent、delete、upload-news-image。
永久走 /upload-permanent,临时走 /upload-temporary(微信侧大约 3 天失效)。图文正文插图走 /upload-news-image,只回微信 URL,不入库。删除只处理永久:先 materialDelete 再删库。图文草稿不是本表的 news 行。开启见 公众号功能设计。

本系统截图:公众号管理 → 素材管理。Tab 是图片 / 语音 / 视频,没有图文类型。
