[TOC]
####接口权限
![不支持](https://box.kancloud.cn/13715f31176b79477b1b114f976c52a4_74x74.jpg =30x30) 订阅号,![支持](https://box.kancloud.cn/210679aec05376f88eda9c088a806868_72x72.jpg =30x30) 认证订阅号,![不支持](https://box.kancloud.cn/13715f31176b79477b1b114f976c52a4_74x74.jpg =30x30) 服务号,![支持](https://box.kancloud.cn/210679aec05376f88eda9c088a806868_72x72.jpg =30x30) 认证服务号
####素材
在回复或是发送给粉丝消息内容时,对多媒体文件、多媒体消息的获取和调用等操作,是通过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格式
#### 上传素材
#####临时素材
>[info]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');
```
#####永久素材
######新增永久素材
>[info]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');
```
######新增永久视频素材
>[info]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');
```
######新增永久图文素材
>[info]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);
```
#### 获取临时素材
>[info]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
```
#### 获取永久素材
>[info]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',
)
```
#### 获取永久素材数量
>[info]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;
```
#### 删除永久素材
>[info]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;
```
- 入门
- 系统安装
- 接入公众平台
- 关键字回复
- 更上一层楼
- 编码规范
- php编码规范
- html&css编码规范
- JavaScript编码规范
- 系统概述
- 结构概述
- 入口脚本
- 微擎MVC
- URL路由&创建
- $_W&全局变量
- 加载器
- 错误处理
- 日志记录
- 模板
- 模板标签
- 数据调用
- 常用变量
- 手机端组件
- 概述及依赖
- 图像上传
- 弹出选项
- 后台组件
- 概述及依赖
- 后台文件上传
- 富文本编辑器
- 系统链接选择器
- 其它常用组件
- 数据库
- 参数绑定
- 数据操作
- 主从配置
- 连接其它数据库
- 缓存
- 配置
- 缓存操作
- Http请求
- 概述及依赖
- GET&POST请求
- 发送邮件
- 会员与积分
- 统一用户中心
- 借用OAuth
- 积分操作
- 资料操作
- 卡券
- 营销卡券
- 会员卡
- 消息响应
- 消息概述
- 消息响应
- 微信API
- 公众号AccessToken
- 共享收货地址(废弃)
- 共享收货地址(新)
- 粉丝标签
- 客服消息
- 模板消息
- 粉丝信息
- 素材
- 群发
- 二维码
- 在线支付
- 概述及依赖
- 发起支付(PHP)
- 发起支付(JS)
- 验证支付
- 模块
- 设计模块
- 目录结构
- module.php
- processor.php
- site.php
- receiver.php
- 模块高级专题
- 自定义分享
- 智能应答
- 微信卡券
- 远程附件
- 权限控制
- 特殊事件触发模块
- 粉丝信息
- 小程序
- 概述
- Uitl类
- 云服务
- 云API
- 系统接口
- 模块云配置
- 云短信
- 云短信错误代码
- 云短信发送函数
- 批量群发短信
- 应用推广
- 悬赏文案
- 折扣码
- 系统消息
- 开发者等级资料认证
- 应用标签
- 模块自动检测订阅支持
- 小程序
- 开发实例
- 参数设置
- 常见问题