ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 素材 - [接口权限](#_1) - [素材](#_2) - [临时素材](#_3) - [永久素材](#_4) - [上传素材](#_5) - [临时素材](#_6) - [永久素材](#_7) - [新增永久素材](#_8) - [新增永久视频素材](#_9) - [新增永久图文素材](#_10) - [获取临时素材](#_11) - [获取永久素材](#_12) - [获取永久素材数量](#_13) - [删除永久素材](#_14) #### 接口权限 ![不支持](https://box.kancloud.cn/13715f31176b79477b1b114f976c52a4_74x74.jpg) 订阅号,![支持](https://box.kancloud.cn/210679aec05376f88eda9c088a806868_72x72.jpg) 认证订阅号,![不支持](https://box.kancloud.cn/13715f31176b79477b1b114f976c52a4_74x74.jpg) 服务号,![支持](https://box.kancloud.cn/210679aec05376f88eda9c088a806868_72x72.jpg) 认证服务号 #### 素材 在回复或是发送给粉丝消息内容时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media\_id来进行的,这个media\_id就是一个素材的id。素材又分为临时素材和永久素材。 ##### 临时素材 对于临时素材,每个素材(media\_id)会在开发者上传或粉丝发送到微信服务器3天后自动删除(所以用户发送给开发者的素材,若开发者需要,应尽快下载到本地),以节省服务器资源。临时素材大小限制如下: 1. 图片(image): 2M,支持PNG\\JPEG\\JPG\\GIF格式 2. 语音(voice):2M,播放长度不超过60s,支持AMR\\MP3格式 3. 视频(video):10MB,支持MP4格式 4. 缩略图(thumb):64KB,支持JPG格式 ##### 永久素材 永久素材会一直存在,除非用户删除,永久素材的存储上限为图片最多5000个,其他类型为1000个。永久素材可以在公众平台官网素材管理模块中看到永久素材。 1. 图片(image): 2M,支持PNG\\JPEG\\JPG\\GIF格式 2. 语音(voice):5M,播放长度不超过60s,支持AMR\\MP3\\WMA\\WAV格式 3. 视频(video):10MB,支持MP4格式 4. 缩略图(thumb):64KB,支持JPG格式 #### 上传素材 ##### 临时素材 > uploadMedia($path, $type) - $path 待上传文件物理路径(绝对路径) - $type 上传素材的类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb,用于视频与音乐格式的缩略图) *返回值* success - type 媒体文件类型 - media\_id 素材id,媒体文件上传后,获取时的唯一标识 - created\_at 媒体文件上传时间戳 ``` array ( 'type' => 'image' 'media_id' => 'PlwECnLT9a6btGwBjGzZ5zJC5Lf_BN1o0MIp9yWp6dxak3mrj0LXHKv0oISdmd-1' 'created_at' => '1481007002' ) ``` error [错误结构](http://www.kancloud.cn/donknap/we7/134630) *示例* ``` $account_api = WeAccount::create(); //任意指定一个文件上传 $result = $account_api->uploadMedia(IA_ROOT . '/attachment/images/global/nopic.jpg', 'image'); //指定一个附件目录下的文件上传 $result = $account_api->uploadMedia('images/global/nopic.jpg', 'image'); //上传一个音频文件 $result = $account_api->uploadMedia('images/global/test.amr', 'voice'); ``` ##### 永久素材 ###### 新增永久素材 > uploadMediaFixed($path, $type) - $path 待上传文件物理路径(绝对路径) - $type 上传素材的类型,分别有图片(image)、语音(voice)、缩略图(thumb,用于视频与音乐格式的缩略图),此函数无法上传永久视频文件,见uploadVideoFixed函数 *返回值* success - media\_id 素材id,媒体文件上传后,获取时的唯一标识 - url 新增的图片素材的图片URL(仅新增图片素材时会返回该字段) ``` array( 'media_id' => 'Sl1720Mq2SCHWUgMNuQyrYr7Mtkn0ACwhxhaYJZ0-00' 'url' => 'http://mmbiz.qpic.cn/mmbiz_jpg/qYicJhgpqsd0rib1R3yJskq3If3QfhGnEchosmR9rJjsseaek7pJfjO88NRCRZIiaMpKpzTO9W1THWPgdZFKnlrTQ/0?wx_fmt=jpeg' ) ``` error [错误结构](http://www.kancloud.cn/donknap/we7/134630) *示例* ``` $account_api = WeAccount::create(); //任意指定一个文件上传 $result = $account_api->uploadMediaFixed(IA_ROOT . '/attachment/images/global/nopic.jpg', 'image'); //指定一个附件目录下的文件上传 $result = $account_api->uploadMediaFixed('images/global/nopic.jpg', 'image'); //上传一个音频文件 $result = $account_api->uploadMediaFixed('images/global/test.amr', 'voice'); ``` ###### 新增永久视频素材 > uploadVideoFixed($title, $description, $path) - $title 视频素材的标题 - $description 视频素材的描述 - $path 待上传文件物理路径(绝对路径) *返回值* success - media\_id 素材id,媒体文件上传后,获取时的唯一标识 ``` array( 'media_id' => 'Sl1720Mq2SCHWUgMNuQyrYr7Mtkn0ACwhxhaYJZ0-00' ) ``` error [错误结构](http://www.kancloud.cn/donknap/we7/134630) *示例* ``` $account_api = WeAccount::create(); //上传attachment/videos 目录下的一个视频文件 $result = $account_api->uploadVideoFixed('我的视频', '我的视频描述', '/videos/myvideo.mp4'); ``` ###### 新增永久图文素材 > addMatrialNews($data) - $data 图文素结构,结构键名说明如下 - title 图文标题 - author 作者 - digest 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空 - content 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS - show\_cover\_pic 是否显示封面,0为false,即不显示,1为true,即显示 - content\_source\_url 图文消息的原文地址,即点击“阅读原文”后的URL - thumb\_media\_id 图文消息的封面图片素材id(必须是永久mediaID) ``` $data = array( 'articles' => array( array( 'title' => '图文标题1', 'author' => '作者1', 'digest' => '摘要1', 'content' => '内容1', 'show_cover_pic' => true, 'content_source_url' => '来源url1', 'thumb_media_id' => '封面缩略图1', ), array( 'title' => '图文标题2', 'author' => '作者2', 'digest' => '摘要2', 'content' => '内容2', 'show_cover_pic' => true, 'content_source_url' => '来源url2', 'thumb_media_id' => '封面缩略图2', ), ), ); ``` *返回值* success - type 媒体文件类型 - media\_id 素材id,媒体文件上传后,获取时的唯一标识 - created\_at 媒体文件上传时间戳 ``` array ( 'type' => 'image' 'media_id' => 'PlwECnLT9a6btGwBjGzZ5zJC5Lf_BN1o0MIp9yWp6dxak3mrj0LXHKv0oISdmd-1' 'created_at' => '1481007002' ) ``` error [错误结构](http://www.kancloud.cn/donknap/we7/134630) *示例* ``` $account_api = WeAccount::create(); //上传缩略图,永久素材必须是永久图片 $thumb = $account_api->uploadMediaFixed(IA_ROOT . '/attachment/images/global/nopic.jpg', 'image'); $news = array( 'articles' => array( array( 'title' => '图文标题1', 'author' => '作者1', 'digest' => '摘要1', 'content' => '内容1', 'show_cover_pic' => true, 'content_source_url' => '来源url1', 'thumb_media_id' => $thumb['media_id'], ), array( 'title' => '图文标题2', 'author' => '作者2', 'digest' => '摘要2', 'content' => '内容2', 'show_cover_pic' => true, 'content_source_url' => '来源url2', ), ), ); $result = $account_api->addMatrialNews($news); ``` #### 获取临时素材 > downloadMedia($mediaid, $savefile = true) - $mediaid 要获取素材的id - $savefile 是否保存成文件,或是直接返回资源文件二进制内容 *返回值* success string 保存到本地资源的路径 string 文件的二进制内容 error [错误结构](http://www.kancloud.cn/donknap/we7/134630) *示例* ``` $account_api = WeAccount::create(); $filename = $account_api->downloadMedia('GjBxqhVBvKtGN7u74bq4KQh_9uwNy_uki-Dcon1lISFGZDmh4wjq_04tmibzhXwH', true); print_r($filename);exit; //输出如下 videos/281/2016/12/1007_8fe35c0f648448f8968497927c407d6d.f10.mp4 ``` #### 获取永久素材 > getMaterial($mediaid, $savefile = true) - $mediaid 要获取素材的id - $savefile 是否保存成文件,或是直接返回资源文件二进制内容 *返回值* success string | array 保存到本地资源的路径,或是视频信息数组,或是图文信息 string 文件的二进制内容 error [错误结构](http://www.kancloud.cn/donknap/we7/134630) *示例* ``` $account_api = WeAccount::create(); //获取一个视频 $filename = $account_api->getMaterial('GjBxqhVBvKtGN7u74bq4KQh_9uwNy_uki-Dcon1lISFGZDmh4wjq_04tmibzhXwH'); print_r($filename);exit; //输出如下 array( 'title' => '我的视频' 'description' => '我的视频描述' 'down_url' => 'http://153.37.232.150/vweixinp.tc.qq.com/1007_269d540dcd6743799395619f469db675.f10.mp4?vkey=AA115995B41386F59F6AB0CCF531AE2E023B6AAF4F8BF484ECADEF2C50700F258D549706F514EE236EB41CD5A9E01ABBE55CB22538900405C1E0A45323C95CEB76997FAC5B20668620D3FD9A3ECA54C68FF6ED1F2854FB04&sha=0&save=1' ) //获取一个图文 $result = $account_api->getMaterial('Sl1720Mq2SCHWUgMNuQyrbqe8Xxk1WSukZn4_lAw6XQ'); print_r($filename);exit; //输出如下 array ( 'news_item' => array ( 0 => array ( 'title' => '图文标题1' 'author' => '作者1' 'digest' => '摘要1' 'content' => '内容1' 'content_source_url' => 'http://baidu.com' 'thumb_media_id' => 'Sl1720Mq2SCHWUgMNuQyre7IMLWzR-93lwzJMuJBgSA' 'show_cover_pic' => 1 'url' => 'http://mp.weixin.qq.com/s?__biz=MjM5NTMxOTM3Mg==&mid=502901628&idx=1&sn=cf26de340c40b5b6720ab6c8d409e46a&chksm=3ef7505f0980d9492d9237c422413aa262965435aaf92d3a3a0748ca0f189ec45a1f68b9d1cc#rd' 'thumb_url' => 'http://mmbiz.qpic.cn/mmbiz_jpg/qYicJhgpqsd06CMx9h3o3UlaTYrDzqjeibIwtYic3I5qJUB2eDibjdsdAQ3UbY9wzPYwu3aq5BFm9lo6As9RF2OJPg/0?wx_fmt=jpeg' ) ), 'create_time' => '1481083124', 'update_time' => '1481083125', ) ``` #### 获取永久素材数量 > getMaterialCount() *返回值* success array ( 'voice\_count' => 音频数量 'video\_count' => 视频数量 'image\_count' => 图片数量 'news\_count'=> 图文数量 ) error [错误结构](http://www.kancloud.cn/donknap/we7/134630) *示例* ``` $account_api = WeAccount::create(); $result = $account_api->getMaterialCount(); print_r($result);exit; ``` #### 删除永久素材 > delMaterial($mediaid) *返回值* success true error [错误结构](http://www.kancloud.cn/donknap/we7/134630) *示例* ``` $account_api = WeAccount::create(); $result = $account_api->delMaterial('Sl1720Mq2SCHWUgMNuQyrTtPdSr7DFjAjee6q3VhOEY'); print_r($result);exit; ```