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);
```