六、素材管理

1. 新增临时素材

公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。

注意点:

  • 1、临时素材media_id是可复用的。
  • 2、媒体文件在微信后台保存时间为3天,即3天后media_id失效。
  • 3、上传临时素材的格式、大小限制与公众平台官网一致。
    public function addImg(){if (!cache('app_access_token')) {$this->cacha_token();}$access_token = cache('app_access_token');$data = array('media' => new \CURLFile(realpath("./static/img/2000780.jpg")));$url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token={$access_token}&type=image";$res = $this->curl_post($url, $data);$res_json = json_decode($res, true);return json($res_json);}

参数说明

参数 是否必须 说明
access_token 调用接口凭证
type 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
media form-data中媒体文件标识,有filename、filelength、content-type等信息
{"type": "image","media_id": "fB1uPlJK0IhNmSCCG5nSivPp5Air6aPIsGHHER_2EWMTRsSeMswyLTLjNbb29ovS","created_at": 1621494788,"item": []
}

2.获取临时素材

公众号可以使用本接口获取临时素材(即下载临时的多媒体文件)。

本接口即为原“下载多媒体文件”接口。

    public function getImg(){if (!cache('app_access_token')) {$this->cacha_token();}$access_token = cache('app_access_token');$url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id=fB1uPlJK0IhNmSCCG5nSivPp5Air6aPIsGHHER_2EWMTRsSeMswyLTLjNbb29ovS";$res = $this->baseHttpGet($url);list($header, $body) = explode("\r\n\r\n", $res, 2);var_dump($header);die;}

参数说明

参数 是否必须 说明
access_token 调用接口凭证
media_id 媒体文件ID

返回说明

正确情况下的返回HTTP头如下:

string(277) "HTTP/1.0 200 OK
Connection: close
Cache-Control: no-cache, must-revalidate
Date: Thu, 20 May 2021 07:30:19 GMT
Content-disposition: attachment; filename="fB1uPlJK0IhNmSCCG5nSivPp5Air6aPIsGHHER_2EWMTRsSeMswyLTLjNbb29ovS.jpg"
Content-Type: image/jpeg
Content-Length: 593137"

3.新增永久素材

对于常用的素材,开发者可通过本接口上传到微信服务器,永久使用。新增的永久素材也可以在公众平台官网素材管理模块中查询管理。

请注意:

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格式

4、图文消息的具体内容中,微信后台将过滤外部的图片链接,图片url需通过"上传图文消息内的图片获取URL"接口上传图片获取。

5、"上传图文消息内的图片获取URL"接口所上传的图片,不占用公众号的素材库中图片数量的100000个的限制,图片仅支持jpg/png格式,大小必须在1MB以下。

6、图文消息支持正文中插入自己帐号和其他公众号已群发文章链接的能力。

(1)新增永久图文素材

    public function addImgNews(){if (!cache('app_access_token')) {$this->cacha_token();}$access_token = cache('app_access_token');$data = '{"articles": [{"title": "测试标题","thumb_media_id": "FruPwspVpkbz0g_HlTm2WgYccsNvPXMgam_69ZJioV0","author": "新新","digest": "测试新增永久图文素材","show_cover_pic": 0,"content": "<img src=\'http://mmbiz.qpic.cn/mmbiz_jpg/Z5VAQrUGHMh1JGSZwoLgpiaMMiceosQ54rzuhVTXOLmTCQPrcicic1FxgDyAQXWHfn0rzEsmq5y2mLjCQGnWqo1muQ/0?wx_fmt=jpeg\'><p>肖战,1991年10月5日出生于重庆市,中国内地男演员、歌手。</p>","content_source_url": "https://baike.baidu.com/item/%E8%82%96%E6%88%98/18866899?fr=aladdin","need_open_comment":1,"only_fans_can_comment":1}]}';$url = "https://api.weixin.qq.com/cgi-bin/material/add_news?access_token={$access_token}";$res = $this->curl_post($url, $data);$res_json = json_decode($res, true);return json($res_json);}

参数说明

参数 是否必须 说明
title 标题
thumb_media_id 图文消息的封面图片素材id(必须是永久mediaID)
author 作者
digest 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空。如果本字段为没有填写,则默认抓取正文前54个字。
show_cover_pic 是否显示封面,0为false,即不显示,1为true,即显示
content 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS,涉及图片url必须来源 "上传图文消息内的图片获取URL"接口获取。外部图片url将被过滤。
content_source_url 图文消息的原文地址,即点击“阅读原文”后的URL
need_open_comment Uint32 是否打开评论,0不打开,1打开
only_fans_can_comment Uint32 是否粉丝才可评论,0所有人可评论,1粉丝才可评论

返回说明

{"media_id": "FruPwspVpkbz0g_HlTm2WmU927-CfVmiVLrMvgBadbU","item": []
}

(2)上传图文消息内的图片获取URL

本接口所上传的图片不占用公众号的素材库中图片数量的100000个的限制。图片仅支持jpg/png格式,大小必须在1MB以下。

接口调用请求说明

http请求方式: POST,https协议 https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN 调用示例(使用curl命令,用FORM表单方式上传一个图片): curl -F media=@test.jpg "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN"

参数说明

参数 是否必须 说明
access_token 调用接口凭证
media form-data中媒体文件标识,有filename、filelength、content-type等信息

返回说明 正常情况下的返回结果为:

{"url":  "http://mmbiz.qpic.cn/mmbiz/gLO17UPS6FS2xsypf378iaNhWacZ1G1UplZYWEYfwvuU6Ont96b1roYs CNFwaRrSaKTPCUdBK9DgEHicsKwWCBRQ/0"}

(3)新增其他类型永久素材

接口调用请求说明

通过POST表单来调用接口,表单id为media,包含需要上传的素材内容,有filename、filelength、content-type等信息。请注意:图片素材将进入公众平台官网素材管理模块中的默认分组。

http请求方式: POST,需使用https https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE 调用示例(使用curl命令,用FORM表单方式新增一个其他类型的永久素材,curl命令的使用请自行查阅资料)

    public function addImg(){if (!cache('app_access_token')) {$this->cacha_token();}$access_token = cache('app_access_token');$data = array('media' => new \CURLFile(realpath("./static/img/2001551.jpg")));$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={$access_token}&type=image";$res = $this->curl_post($url, $data);$res_json = json_decode($res, true);return json($res_json);}

参数说明

参数 是否必须 说明
access_token 调用接口凭证
type 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
media form-data中媒体文件标识,有filename、filelength、content-type等信息
{"media_id": "FruPwspVpkbz0g_HlTm2WgYccsNvPXMgam_69ZJioV0","url": "http://mmbiz.qpic.cn/mmbiz_jpg/Z5VAQrUGHMh1JGSZwoLgpiaMMiceosQ54r3BEAiazqDDqecEicJaNGlx6WpD3cgmAMs2GWlk1p1C34BJUSO5PKSzTA/0?wx_fmt=jpeg","item": []
}

新增永久视频素材需特别注意

在上传视频素材时需要POST另一个表单,id为description,包含素材的描述信息,内容格式为JSON,格式如下:

{"title":VIDEO_TITLE,"introduction":INTRODUCTION
}

4.获取永久素材

在新增了永久素材后,开发者可以根据media_id通过本接口下载永久素材。公众号在公众平台官网素材管理模块中新建的永久素材,可通过"获取素材列表"获知素材的media_id。

请注意:临时素材无法通过本接口获取

接口请求说明

http请求方式: POST,https协议 https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=ACCESS_TOKEN

调用示例

    public function getImgNever(){if (!cache('app_access_token')) {$this->cacha_token();}$access_token = cache('app_access_token');$data = '{"media_id":"FruPwspVpkbz0g_HlTm2WmU927-CfVmiVLrMvgBadbU"}';$url = "https://api.weixin.qq.com/cgi-bin/material/get_material?access_token={$access_token}";$res = $this->baseHttpPost($url,$data);$res_json = json_decode($res, true);return json($res_json);}

调用参数说明

参数 是否必须 说明
access_token 调用接口凭证
media_id 要获取的素材的media_id

接口返回说明

图文素材:

{"news_item": [{"title": "测试标题","author": "新新","digest": "测试新增永久图文素材","content": "<img data-src=\"https://mmbiz.qpic.cn/mmbiz_jpg/Z5VAQrUGHMh1JGSZwoLgpiaMMiceosQ54rzuhVTXOLmTCQPrcicic1FxgDyAQXWHfn0rzEsmq5y2mLjCQGnWqo1muQ/640?wx_fmt=jpeg\"><p>肖战,1991年10月5日出生于重庆市,中国内地男演员、歌手。</p>","content_source_url": "https://baike.baidu.com/item/%E8%82%96%E6%88%98/18866899?fr=aladdin","thumb_media_id": "FruPwspVpkbz0g_HlTm2WgYccsNvPXMgam_69ZJioV0","show_cover_pic": 0,"url": "http://mp.weixin.qq.com/s?__biz=Mzg5OTYyMjY5OQ==&mid=100000006&idx=1&sn=9fc2499375bc380bc5d2dd6931deb1e9&chksm=405133427726ba54fc2ef5e17c7a948190e24456e21faa80bcdddf8e248bc534941fa7116d50#rd","thumb_url": "http://mmbiz.qpic.cn/mmbiz_jpg/Z5VAQrUGHMh1JGSZwoLgpiaMMiceosQ54r3BEAiazqDDqecEicJaNGlx6WpD3cgmAMs2GWlk1p1C34BJUSO5PKSzTA/0?wx_fmt=jpeg","need_open_comment": 1,"only_fans_can_comment": 1}],"create_time": 1621497117,"update_time": 1621497117
}

视频消息素材:

{"title":TITLE,"description":DESCRIPTION,"down_url":DOWN_URL,
}

其他类型的素材消息,则响应的直接为素材的内容,开发者可以自行保存为文件。例如:

示例 curl "https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=ACCESS_TOKEN" -d '{"media_id":"61224425"}' > file

返回参数说明

参数 描述
title 图文消息的标题
thumb_media_id 图文消息的封面图片素材id(必须是永久mediaID)
show_cover_pic 是否显示封面,0为false,即不显示,1为true,即显示
author 作者
digest 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
content 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
url 图文页的URL
content_source_url 图文消息的原文地址,即点击“阅读原文”后的URL

5.删除永久素材

在新增了永久素材后,开发者可以根据本接口来删除不再需要的永久素材,节省空间。

请注意:

1、请谨慎操作本接口,因为它可以删除公众号在公众平台官网素材管理模块中新建的图文消息、语音、视频等素材(但需要先通过获取素材列表来获知素材的media_id) 2、临时素材无法通过本接口删除 3、调用该接口需https协议

接口调用请求说明

http请求方式: POST https://api.weixin.qq.com/cgi-bin/material/del_material?access_token=ACCESS_TOKEN

调用示例

{"media_id":MEDIA_ID
}

参数说明

参数 是否必须 说明
access_token 调用接口凭证
media_id 要获取的素材的media_id

返回说明

{"errcode":ERRCODE,"errmsg":ERRMSG
}

正常情况下调用成功时,errcode将为0。

6.修改永久图文素材

开发者可以通过本接口对永久图文素材进行修改。

请注意:

1、也可以在公众平台官网素材管理模块中保存的图文消息(永久图文素材) 2、调用该接口需https协议

接口调用请求说明

http请求方式: POST https://api.weixin.qq.com/cgi-bin/material/update_news?access_token=ACCESS_TOKEN

调用示例

public function updateImgNews(){if (!cache('app_access_token')) {$this->cacha_token();}$access_token = cache('app_access_token');$data = '{"media_id":"FruPwspVpkbz0g_HlTm2WmU927-CfVmiVLrMvgBadbU","articles": {"title": "测试标题","thumb_media_id": "FruPwspVpkbz0g_HlTm2WgYccsNvPXMgam_69ZJioV0","author": "新新","digest": "测试新增永久图文素材","show_cover_pic": 0,"content": "<img src=\'http://mmbiz.qpic.cn/mmbiz_jpg/Z5VAQrUGHMh1JGSZwoLgpiaMMiceosQ54rzuhVTXOLmTCQPrcicic1FxgDyAQXWHfn0rzEsmq5y2mLjCQGnWqo1muQ/0?wx_fmt=jpeg\'><p>肖战,1991年10月5日出生于重庆市,中国内地男演员、歌手。</p>","content_source_url": "https://baike.baidu.com/item/%E8%82%96%E6%88%98/18866899?fr=aladdin"}}';$url = "https://api.weixin.qq.com/cgi-bin/material/update_news?access_token={$access_token}";$res = $this->curl_post($url, $data);$res_json = json_decode($res, true);return json($res_json);}

参数说明

参数 是否必须 说明
media_id 要修改的图文消息的id
index 要更新的文章在图文消息中的位置(多图文消息时,此字段才有意义),第一篇为0
title 标题
thumb_media_id 图文消息的封面图片素材id(必须是永久mediaID)
author 作者
digest 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
show_cover_pic 文章内是否显示封面,0为false,即不显示,1为true,即显示
content 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
content_source_url 图文消息的原文地址,即点击“阅读原文”后的URL

返回说明

{"errcode": ERRCODE,"errmsg": ERRMSG
}

正确时errcode的值应为0。

7.获取素材总数

开发者可以根据本接口来获取永久素材的列表,需要时也可保存到本地。

请注意:

1.永久素材的总数,也会计算公众平台官网素材管理中的素材 2.图片和图文消息素材(包括单图文和多图文)的总数上限为100000,其他素材的总数上限为1000 3.调用该接口需https协议

接口调用请求说明

http请求方式: GET https://api.weixin.qq.com/cgi-bin/material/get_materialcount?access_token=ACCESS_TOKEN

    public function getCount(){if (!cache('app_access_token')) {$this->cacha_token();}$access_token = cache('app_access_token');$url = "https://api.weixin.qq.com/cgi-bin/material/get_materialcount?access_token={$access_token}";$res = $this->baseHttpGet($url);$res_json = json_decode($res, true);return json($res_json);}

返回说明

{"voice_count": 0,"video_count": 0,"image_count": 3,"news_count": 2
}

返回参数说明

参数 描述
voice_count 语音总数量
video_count 视频总数量
image_count 图片总数量
news_count 图文总数量

8.获取素材列表

在新增了永久素材后,开发者可以分类型获取永久素材的列表。

请注意:

1、获取永久素材的列表,也包含公众号在公众平台官网素材管理模块中新建的图文消息、语音、视频等素材 2、临时素材无法通过本接口获取 3、调用该接口需https协议

接口调用请求说明

http请求方式: POST https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN

调用示例

    public function getImgList(){if (!cache('app_access_token')) {$this->cacha_token();}$access_token = cache('app_access_token');$data = '{"type":"news","offset":"0","count":"5"}';$url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token={$access_token}";$res = $this->curl_post($url, $data);$res_json = json_decode($res, true);return $res;}

参数说明

参数 是否必须 说明
type 素材的类型,图片(image)、视频(video)、语音 (voice)、图文(news)
offset 从全部素材的该偏移位置开始返回,0表示从第一个素材 返回
count 返回素材的数量,取值在1到20之间

返回说明

永久图文消息素材列表的响应如下:

{"total_count": TOTAL_COUNT,"item_count": ITEM_COUNT,"item": [{"media_id": MEDIA_ID,"content": {"news_item": [{"title": TITLE,"thumb_media_id": THUMB_MEDIA_ID,"show_cover_pic": SHOW_COVER_PIC(0 / 1),"author": AUTHOR,"digest": DIGEST,"content": CONTENT,"url": URL,"content_source_url": CONTETN_SOURCE_URL},//多图文消息会在此处有多篇文章]},"update_time": UPDATE_TIME},//可能有多个图文消息item结构]
}

其他类型(图片、语音、视频)的返回如下:

{"total_count": TOTAL_COUNT,"item_count": ITEM_COUNT,"item": [{"media_id": MEDIA_ID,"name": NAME,"update_time": UPDATE_TIME,"url":URL},//可能会有多个素材]
}

返回参数说明

参数 描述
total_count 该类型的素材的总数
item_count 本次调用获取的素材的数量
title 图文消息的标题
thumb_media_id 图文消息的封面图片素材id(必须是永久mediaID)
show_cover_pic 是否显示封面,0为false,即不显示,1为true,即显示
author 作者
digest 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
content 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
url 图文页的URL,或者,当获取的列表是图片素材列表时,该字段是图片的URL
content_source_url 图文消息的原文地址,即点击“阅读原文”后的URL
update_time 这篇图文消息素材的最后更新时间
name 文件名称

错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):

{"errcode":40007,"errmsg":"invalid media_id"}

微信公众号--素材管理相关推荐

  1. PHP curl模拟表单上传文件 微信公众号素材管理接口crul文件上传核心源码

    PHP curl模拟表单上传文件  微信公众号素材管理接口crul文件上传核心源码 /*** curl 上传文件* @param $url* @param $filePath* @param stri ...

  2. 怎么保存在界面输入的内容_微信公众号素材管理中的文章怎么发表?怎么一次性发多篇推文?...

    这次,我们一起来了解一下最基础的问题,那就是,怎么发布公众号素材文章,以及怎么一次性发布多篇文章,一起来看看吧~ 1 怎么发布公众号文章 随着微信公众号的普及,人们通常会在公众号中浏览资讯,公众号运营 ...

  3. 公众号管理系统 html,微信公众号平台管理后台.html

     微信公众号平台管理后台 $axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent ...

  4. php开发公众号素材管理总结

    微信开发中, 要使用的素材都必须先上传到微信服务器, 才能在你的内容中使用, 素材管理可以说是重要的基础, 后面的开发需要用到这节课程实现的功能, 建议同学们看完后, 一定要跟着视频, 把代码敲一遍- ...

  5. jquery开发公众号素材管理页面

    公众号临时素材上传到微信服务器后, 我们还需要对它们进行管理, 其中最关键的就是要获取临时素材的media_id. 你可以把临时素材的media_id保存到你的web服务器数据库中, 当你需要的时候, ...

  6. ​微信公众号素材图片去哪找?

    ​微信公众号素材图片去哪找? 给文章配图,应该是不少新媒体小编的最头痛的事情了. 为了让大家找图更高效,配图更轻松.小蚂蚁编辑器上线了"无版权图". 无版权图(CC0协议图片),即 ...

  7. 获取微信公众号素材的语言和视频

    获取微信公众号素材的语言和视频 欢迎大家关注我的微信公众号,会分享自己在Web开发领域和生活工作中的一些所思所悟,希望能给你带来帮助!

  8. 微信公众号怎么管理粉丝用户-微信公众号使用教程13

    随着微信公众号的运营, 关注你的公众号的人会逐渐增多. 这个时候就需要你掌握技巧来管理你的粉丝了. 良好的用户管理方法, 会让你从粉丝中发现他们的需求, 进而生产出他们喜欢的产品和服务. 另外还可以从 ...

  9. mui 时间样式错乱_微信公众号素材样式中心在哪?公众号动态分割线怎么添加?...

    相比于静态分割线,动态分割线更有特色,能给文章增加趣味性. 今天壹姐就来给公众号运营的小伙伴们介绍,怎么添加动态的分割线样式到文章里吧~ 1 怎么使用公众号样式中心公众号后台的编辑功能比较基础,想要使 ...

  10. java微信公众号素材管理系统_微信公众平台后台素材管理

    原标题:微信公众平台后台素材管理 1.图文消息预览区 可以让作者看到最终发到用户手机时的效果,但是封面图片的展示和最终效果可能会有一些差别. 2.文章标题 文章标题力求抓人眼球,因为当消息推送到用户手 ...

最新文章

  1. 多地发钱鼓励生育,能刺激年轻人生娃吗
  2. Selenium 基于python 安装以及配置谷歌浏览器启动
  3. php文件写入生成文件,PHP 文件操作类(创建文件并写入) 生成日志
  4. C#——《C#语言程序设计》实验报告——泛型与集合——运算符重载
  5. Linux学习笔记02
  6. A Way to implement Abstract Class In Flex
  7. Spring MVC 流程图解析
  8. 仿Drinkspiration App的menu
  9. HTML5新增相关标签的和属性
  10. cas-server Jdbc 连接读取用户(5)
  11. C#反射的Assembly的简单应用
  12. 华为手机邮箱发件服务器端口设置,华为手机设置-华为手机POP3设置
  13. 计算机考研百天,2021非全日制研究生备考即将进入百天倒计时的你还在坚持吗?...
  14. 程序员也要学英语——连词、并列句和从句
  15. 随机过程 Class 3 条件期望
  16. 【可视化入门】智慧物流服务中心——可视化实例(动态)
  17. ORACLE大数据查询
  18. 淘宝产品3d展示-家具沙发三维模型应用
  19. 如何生成随机数(模拟掷骰子的过程)-C语言
  20. [机缘参悟-52]:交浅言深要因人而异

热门文章

  1. springboot集成socket.io通过jwt-token身份认证鉴权
  2. 屏蔽全部统计代码(51.la cnzz 百度统计 谷歌分析师adsense、屏蔽淘宝客广告代码)的方法...
  3. vue中如何设置鼠标经过切换样式
  4. Pivotal 任命Lionel Lim为Pivotal公司副总裁兼亚太区常务董事
  5. 摄影_光圈、快门、曝光度(ISO)
  6. Bypassing JavaScript Filters – the Flash! Attack
  7. num转大写中文(零壹贰叁肆伍陆柒捌玖)
  8. Word 连续使用格式刷
  9. 2-AltiumDesigner原理图设计
  10. 金山词霸PC企业版2016