# 上传永久素材

调试工具

接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南

接口英文名:addMaterial

本接口用于新增图片/语音/视频等类型的永久素材。

# 1. 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE

# 云调用

  • 调用方法:officialAccount.material.addMaterial

  • 出入参和 HTTPS 调用相同,调用方式可查看 云调用 说明文档

# 第三方调用

  • 本接口支持第三方平台代商家调用。

  • 该接口所属的权限集 id 为:11、100

  • 服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。

# 2. 请求参数

# 查询参数 Query String parameters

参数名类型必填示例说明
access_tokenstringACCESS_TOKEN接口调用凭证,可使用 access_tokenauthorizer_access_token
typestringvideo媒体类型,图片(image)、语音(voice)、视频(video)和缩略图(thumb)

# 请求体 Request Payload

参数名类型必填说明
mediaformdata媒体文件标识
descriptionobject素材描述信息,上传视频素材时需要

# Body.description Object Payload

素材描述信息,上传视频素材时需要

参数名类型必填示例说明
titlestring视频标题视频素材描述标题
introductionstring视频简介视频素材描述简介

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明
media_idstring新增的永久素材media_id
urlstring图片素材URL(仅图片返回)

# 4. 注意事项

  1. 永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用,图片将被屏蔽)。
  2. 公众号的素材库保存总数量有上限:图文消息素材、图片素材上限为100000,其他类型为1000。
  3. 素材的格式大小等要求与公众平台官网一致:
  • 图片(image): 10M,支持bmp/png/jpeg/jpg/gif格式
  • 语音(voice):2M,播放长度不超过60s,mp3/wma/wav/amr格式
  • 视频(video):10MB,支持MP4格式
  • 缩略图(thumb):64KB,支持JPG格式
  1. 图文消息的具体内容中,微信后台将过滤外部的图片链接,图片url需通过上传图文消息图片接口上传图片获取。
  2. 上传图文消息图片接口所上传的图片,不占用公众号的素材库中图片数量的100000个的限制,图片仅支持jpg/png格式,大小必须在1MB以下。
  3. 图文消息支持正文中插入自己账号和其他公众号/服务号已群发文章链接的能力。

# 5. 代码示例

# 5.1 新增视频示例

请求示例

curl "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE" -F media=@media.file -F description='{"title":VIDEO_TITLE, "introduction":INTRODUCTION}'

返回示例

{
  "media_id": "MEDIA_ID_123456",
  "url": ""
}

# 5.2 新增图片示例

请求示例

curl "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE" -F media=@media.file

返回示例

{
  "media_id": "MEDIA_ID_654321",
  "url": "https://example.com/image.jpg"
}

# 6. 错误码

以下是本接口的错误码列表,其他错误码可参考 通用错误码

错误码错误描述解决方案
40007invalid media_id无效媒体ID

# 7. 适用范围

本接口在不同账号类型下的可调用情况:
公众号服务号
  • ✔:该账号可调用此接口
  • 其他未明确声明的账号类型,如无特殊说明,均不可调用此接口;