uploadMediaFixed() - 上传永久素材
### 说明
```
uploadMediaFixed($path, $type = 'images')
```
### 参数
- **$url** string 要获取内容的URL,必须是以http或是https开头
- **$timeout** int 超时时间
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
```
Array
(
[media_id] => 'MEDIA_ID', //新增的永久素材的media_id
[url] => 'URL' //新增的图片素材的图片URL
)
```
### 示例
#### 上传永久素材
```
$account_api = WeAccount::create();
$result = $account_api->uploadMediaFixed('/images/0/2017/12/iigTzTiGil4q77QiSv2rI7T7jQJRgL.jpg','image');
```
addMatrialNews($data) - 新增永久图文素材
### 说明
```
addMatrialNews($data)
```
### 参数
- **$data** array() 请求参数(结构如下)
```
array(
'articles' => array(
'title' => TITLE, //标题
'thumb_media_id' => THUMB_MEDIA_ID, //图文消息的封面图片素材id(必须是永久mediaID)
'author' => AUTHOR, //作者
'digest' => DIGEST, //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空。如果本字段为没有填写,则默认抓取正文前64个字。
'show_cover_pic' => SHOW_COVER_PIC(0 / 1), //是否显示封面,0为false,即不显示,1为true,即显示
'content' => CONTENT, //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS,涉及图片url必须来源 "上传图文消息内的图片获取URL"接口获取。外部图片url将被过滤。
'content_source_url' => CONTENT_SOURCE_URL //图文消息的原文地址,即点击“阅读原文”后的URL
),
//若新增的是多图文素材,则此处应还有几段articles结构
)
```
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
```
array(
'media_id' => MEDIA_ID //返回的即为新增的图文消息素材的media_id
)
```
### 示例
```
$account_api = WeAccount::create();
$media_id = $account_api->addMatrialNews($articles);
print_r($media_id);
```
uploadNewsThumb() - 上传图文消息内的图片获取URL
### 说明
```
uploadNewsThumb($thumb)
```
### 参数
- **$thumb** form-data中媒体文件标识,有filename、filelength、content-type等信息
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
```
array(
'url' => URL, //上传图片的URL,可放置图文消息中使用
)
```
### 示例
```
$thumb = ATTACHMENT_ROOT . $thumb;
$account_api = WeAccount::create($_W['acid']);
$result = $account_api->uploadNewsThumb($thumb);
print_r($result);
```
uploadVideoFixed() - 新增永久素材(视频)
### 说明
```
uploadVideoFixed($title, $description, $path)
```
### 参数
- **$title** string 视频素材的标题
- **$description** string 视频素材的描述
- **$path** 媒体文件
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
```
array(
'media_id' => MEDIA_ID, //新增的永久素材的media_id
)
```
### 示例
```
$account_api = WeAccount::create();
$result = $account_api->uploadVideoFixed('自行车', '自行车比赛', './1.mp4');
print_r($result);
```
editMaterialNews() - 修改永久图文素材
### 说明
```
editMaterialNews($data)
```
### 参数
- **$data** array() 请求参数(结构如下)
```
array(
'media_id' => 'MEDIA_ID', //要修改的图文消息的id
'index' => 'INDEX', //要更新的文章在图文消息中的位置(多图文消息时,此字段才有意义),第一篇为0
'articles' => array(
'title' => 'TITLE', //标题
'thumb_media_id' => 'THUMB_MEDIA_ID', //图文消息的封面图片素材id(必须是永久mediaID)
'author' => 'AUTHOR', //作者
'digest' => 'DIGEST', //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
'show_cover_pic' => 'SHOW_COVER_PIC(0 / 1)', //是否显示封面,0为false,即不显示,1为true,即显示
'content' => 'CONTENT', //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
'content_source_url' => 'CONTENT_SOURCE_URL' //图文消息的原文地址,即点击“阅读原文”后的URL
)
)
```
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
返回boolean值:true
### 示例
```
$edit_attachment['media_id'] = $material['media_id'];
$edit_attachment['index'] = $news['displayorder'];
$edit_attachment['articles'] = $news;
$result = $account_api->editMaterialNews($edit_attachment);
print_r($result);
```
getMaterial() - 获取永久素材
### 说明
```
downloadMedia($media_id, $savefile = true)
```
### 参数
- **$media_id** string 素材ID
- **$savefile** boolean 是否保存为文件
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
不保存文件:
```
array(
'news_item' => array(
array(
'title' => TITLE, //图文消息的标题
'thumb_media_id' => THUMB_MEDIA_ID, //图文消息的封面图片素材id(必须是永久mediaID)
'show_cover_pic' => SHOW_COVER_PIC(0/1), //是否显示封面,0为false,即不显示,1为true,即显示
'author' => AUTHOR, //作者
'digest' => DIGEST, //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
'content' => CONTENT, //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
'url' => URL, //图文页的URL
'content_source_url' => CONTENT_SOURCE_URL //图文消息的原文地址,即点击“阅读原文”后的URL
),
//多图文消息有多篇文章
)
)
如果返回的是视频消息素材,则内容如下:
array(
'title' => TITLE,
'description' =>DESCRIPTION,
'down_url' => DOWN_URL,
)
```
保存文件:
```
返回文件保存路径, 如:
images/2/2017/12/8EonLnNZdsuJSf3Wv2pGg4U1oOHQxox_su78tKX5HDxsQNhXiZ0AFJQzQvE8NQV8.jpg
```
### 示例
```
$media_id = 'oR5OU2VN0aCr9Kkg4lalkv5kcyCwhdsLJ0C0_rlPVzY';
$account_api = WeAccount::create();
$result = $account_api->getMaterial($media_id);
print_r($result);
```
getMaterialCount() - 获取各种永久素材的总数
### 说明
```
getMaterialCount()
```
### 参数
无
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
```
Array
(
[voice_count] => COUNT, //语音总数量
[video_count] => COUNT, //视频总数量
[image_count] => COUNT, //图片总数量
[news_count] => COUNT //图文总数量
)
```
### 示例
```
$account_api = WeAccount::create();
$result = $account_api->getMaterialCount();
print_r($result);
```
delMaterial() - 删除永久素材
### 说明
```
delMaterial($media_id)
```
### 参数
- **$media_id** string 素材media_id
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
返回boolean值:true
### 示例
```
$media_id = 'oR5OU2VN0aCr9Kkg4lalkpzzdOc628ATnCmlfZdgJt4';
$account_api = WeAccount::create();
$result = $account_api->delMaterial($media_id);
print_r($result);
```
batchGetMaterial() - 获取素材列表
### 说明
```
batchGetMaterial($type = 'news', $offset = 0, $count = 20)
```
### 参数
- **$type** string 素材类型(image, video, voice, news)
- **$offset** int 从全部素材的该偏移位置开始返回,0表示从第一个素材 返回
- **$count** int 返回素材的数量,取值在1到20之间
### 返回值
#### error
可用is_error判断,详见《错误处理》
#### success
```
永久图文消息素材列表的响应如下:
array(
"total_count" => TOTAL_COUNT, //该类型的素材的总数
"item_count" => ITEM_COUNT, //本次调用获取的素材的数量
"item" => array(
array(
"media_id" => MEDIA_ID, //素材media_id
"content" => array(
"news_item" => array(
array(
"title" => TITLE, //图文消息的标题
"thumb_media_id" => THUMB_MEDIA_ID, //图文消息的封面图片素材id(必须是永久mediaID)
"show_cover_pic" => SHOW_COVER_PIC(0 / 1), //是否显示封面,0为false,即不显示,1为true,即显示
"author" => AUTHOR, //作者
"digest" => DIGEST, //图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
"content"=> CONTENT, //图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
"url" => URL, //图文页的URL
"content_source_url" => CONTETN_SOURCE_URL //图文消息的原文地址,即点击“阅读原文”后的URL
),
//多图文消息会在此处有多篇文章
)
),
"update_time": UPDATE_TIME //这篇图文消息素材的最后更新时间
),
//可能有多个图文消息item结构
)
)
其他类型(图片、语音、视频)的返回如下:
array
(
'item' => array(
array(
[media_id] => 'MEDIA_ID', //素材media_id
[name] => 'NAME', //文件名称
[update_time] => UPDATE_TIME, //这篇图文消息素材的最后更新时间
[url] => 'RUL' //素材的URL
),
//可能会有多个素材
)
'total_count' => 'TOTAL_COUNT', //该类型的素材的总数
'item_count' => 'ITEM_COUNT' //本次调用获取的素材的数量
)
```
### 示例
```
$account_api = WeAccount::create();
$result = $account_api->batchGetMaterial('image);
print_r($result);
```