微信公眾號開發---微信介面素材管理
阿新 • • 發佈:2019-01-30
素材管理
介面:
/*
臨時素材幾點注意:
1.對於臨時素材,每個素材(media_id)會在開發者上傳或粉絲髮送到微信伺服器3天后自動刪除(所以使用者傳送給開發者的素材,若開發者需要,應儘快下載到本地),以節省伺服器資源(對於使用者上傳的臨時素材,我們是不是得有事件來記錄到表中??如果想下載使用者上傳的素材應該得這麼做吧)
2.type型別及限制:
圖片(image): 2M,支援JPG格式
語音(voice):2M,播放長度不超過60s,支援AMR\MP3格式
視訊(video):10MB,支援MP4格式
縮圖(thumb):64KB,支援JPG格式
3.媒體檔案在後臺儲存時間為3天,即3天后media_id失效。
*/
1>新增臨時素材 - (訂閱號與服務號認證後均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
引數:
type - 媒體檔案型別,分別有圖片(image)、語音(voice)、視訊(video)和縮圖(thumb)
media = @imgUrl;
返回值:
{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}// 區別於 "永久素材",返回了 "建立時間",我們可以定位素材的過期時間還剩多久。。
2>獲取臨時素材 - (訂閱號與服務號認證後均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID
/*
永久素材幾點注意:
1.永久圖片素材新增後,將帶有URL返回給開發者,開發者可以在騰訊系域名內使用(騰訊系域名外使用,圖片將被遮蔽)。
2.圖文訊息素材和圖片素材的上限為5000,其他型別為1000
3.type型別及限制:
圖片(image): 2M,支援bmp/png/jpeg/jpg/gif格式
語音(voice):5M,播放長度不超過60s,支援mp3/wma/wav/amr格式
視訊(video):20MB,支援rm,rmvb,wmv,avi,mpg,mpeg,mp4 格式
縮圖(thumb):64KB,支援JPG格式
*/
3>新增永久圖文素材 - (訂閱號與服務號認證後均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN
引數:
{
articles : [
{
"title": 標題,
"thumb_media_id": 圖文訊息的封面圖片素材id(必須是永久mediaID),// 這個得注意下
"author": 作者,
"digest": 圖文訊息的摘要,僅有單圖文訊息才有摘要,多圖文此處為空,// 多圖文,digest = ''
"show_cover_pic": 是否顯示封面,0為false,即不顯示,1為true,即顯示,
"content": 圖文訊息的具體內容,支援HTML標籤,必須少於2萬字符,小於1M,且此處會去除JS,// 注意這幾個條件
"content_source_url": 圖文訊息的原文地址,即點選“閱讀原文”後的URL// 不填寫,應該是沒有 '閱讀原文' 連結
},
{},
...
]
}
/*
切記:
1.在圖文訊息的具體內容中,微信將過濾外部的圖片連結!!!!
2.為了讓外部圖片,可以存在,我們得將外部圖片,轉換成微信內部圖片,呼叫下面的介面:
-------------------------------------------------------------
上傳圖文訊息內的圖片獲取URL - (訂閱號與服務號認證後均可用)
-- 本介面所上傳的圖片不佔用公眾號的素材庫中圖片數量的5000個的限制 - 切記!
-- 圖片僅支援jpg/png格式 - 切記!
-- 大小必須在1MB以下 - 切記!
api_url:
https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN
引數:
media = @imgUrl;
返回值:
{url : xxx}
*/
4>新增其他(非圖文)永久素材 - (訂閱號與服務號認證後均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE
引數:
type - 媒體檔案型別,分別有圖片(image)、語音(voice)、視訊(video)和縮圖(thumb)
media = @imgUrl;
/*
對於視訊素材,還需要填寫2個引數:
title - 視訊素材的標題
introduction - 視訊素材的描述
*/
返回值:
{"media_id":"MEDIA_ID", "url": 'url地址'} // 新增的圖片素材的圖片URL(僅新增圖片素材時會返回該欄位)
5>獲取單個永久素材
api_url:
https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=ACCESS_TOKEN
引數:
media_id - 要獲取的素材的media_id
返回值:
分3類:
1.圖文
2.視訊
{
"title":TITLE,
"description":DESCRIPTION,
"down_url":DOWN_URL,
}
3.其他型別,返回的直接是內容,我們可以直接 file_put_contents() 寫入到本地檔案
6>刪除單個永久素材
api_url:
https://api.weixin.qq.com/cgi-bin/material/del_material?access_token=ACCESS_TOKEN
引數:
media_id - 要刪除的素材的media_id
7>修改永久圖文素材
api_url:
https://api.weixin.qq.com/cgi-bin/material/update_news?access_token=ACCESS_TOKEN
引數:
media_id // 要修改的圖文訊息的id
index// 要更新的文章在圖文訊息中的位置(多圖文訊息時,此欄位才有意義),第一篇為0
/*
注意點:
1.只有永久圖文素材,才能修改
2.圖文素材的修改,只能是對其中一條一條的條目進行修改,所以必須傳入 'index',從0開始
*/
8>獲取素材總數
api_url:
https://api.weixin.qq.com/cgi-bin/material/get_materialcount?access_token=ACCESS_TOKEN
返回值:
{
"voice_count":COUNT, // 語音總數量
"video_count":COUNT,// 視訊總數量
"image_count":COUNT,// 圖片總數量
"news_count":COUNT // 圖文總數量
}
9>獲取素材列表
api_url:
https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN
引數:
{
"type":TYPE, // 素材的型別,圖片(image)、視訊(video)、語音 (voice)、圖文(news)
"offset":OFFSET,// 從全部素材的該偏移位置開始返回,0表示從第一個素材 返回
"count":COUNT // 返回素材的數量,取值在1到20之間 - 每次獲取最多20條
}
返回值:
詳細看文件,這裡提2個:
"total_count": TOTAL_COUNT, // 該型別的素材的總數
"item_count": ITEM_COUNT,// 本次呼叫獲取的素材的數量
介面:
/*
臨時素材幾點注意:
1.對於臨時素材,每個素材(media_id)會在開發者上傳或粉絲髮送到微信伺服器3天后自動刪除(所以使用者傳送給開發者的素材,若開發者需要,應儘快下載到本地),以節省伺服器資源(對於使用者上傳的臨時素材,我們是不是得有事件來記錄到表中??如果想下載使用者上傳的素材應該得這麼做吧)
2.type型別及限制:
圖片(image): 2M,支援JPG格式
語音(voice):2M,播放長度不超過60s,支援AMR\MP3格式
視訊(video):10MB,支援MP4格式
縮圖(thumb):64KB,支援JPG格式
3.媒體檔案在後臺儲存時間為3天,即3天后media_id失效。
*/
1>新增臨時素材 - (訂閱號與服務號認證後均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
引數:
type - 媒體檔案型別,分別有圖片(image)、語音(voice)、視訊(video)和縮圖(thumb)
media = @imgUrl;
返回值:
{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}// 區別於 "永久素材",返回了 "建立時間",我們可以定位素材的過期時間還剩多久。。
2>獲取臨時素材 - (訂閱號與服務號認證後均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID
/*
永久素材幾點注意:
1.永久圖片素材新增後,將帶有URL返回給開發者,開發者可以在騰訊系域名內使用(騰訊系域名外使用,圖片將被遮蔽)。
2.圖文訊息素材和圖片素材的上限為5000,其他型別為1000
3.type型別及限制:
圖片(image): 2M,支援bmp/png/jpeg/jpg/gif格式
語音(voice):5M,播放長度不超過60s,支援mp3/wma/wav/amr格式
視訊(video):20MB,支援rm,rmvb,wmv,avi,mpg,mpeg,mp4 格式
縮圖(thumb):64KB,支援JPG格式
*/
3>新增永久圖文素材 - (訂閱號與服務號認證後均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN
引數:
{
articles : [
{
"title": 標題,
"thumb_media_id": 圖文訊息的封面圖片素材id(必須是永久mediaID),// 這個得注意下
"author": 作者,
"digest": 圖文訊息的摘要,僅有單圖文訊息才有摘要,多圖文此處為空,// 多圖文,digest = ''
"show_cover_pic": 是否顯示封面,0為false,即不顯示,1為true,即顯示,
"content": 圖文訊息的具體內容,支援HTML標籤,必須少於2萬字符,小於1M,且此處會去除JS,// 注意這幾個條件
"content_source_url": 圖文訊息的原文地址,即點選“閱讀原文”後的URL// 不填寫,應該是沒有 '閱讀原文' 連結
},
{},
...
]
}
/*
切記:
1.在圖文訊息的具體內容中,微信將過濾外部的圖片連結!!!!
2.為了讓外部圖片,可以存在,我們得將外部圖片,轉換成微信內部圖片,呼叫下面的介面:
-------------------------------------------------------------
上傳圖文訊息內的圖片獲取URL - (訂閱號與服務號認證後均可用)
-- 本介面所上傳的圖片不佔用公眾號的素材庫中圖片數量的5000個的限制 - 切記!
-- 圖片僅支援jpg/png格式 - 切記!
-- 大小必須在1MB以下 - 切記!
api_url:
https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN
引數:
media = @imgUrl;
返回值:
{url : xxx}
*/
4>新增其他(非圖文)永久素材 - (訂閱號與服務號認證後均可用)
api_url:
https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE
引數:
type - 媒體檔案型別,分別有圖片(image)、語音(voice)、視訊(video)和縮圖(thumb)
media = @imgUrl;
/*
對於視訊素材,還需要填寫2個引數:
title - 視訊素材的標題
introduction - 視訊素材的描述
*/
返回值:
{"media_id":"MEDIA_ID", "url": 'url地址'} // 新增的圖片素材的圖片URL(僅新增圖片素材時會返回該欄位)
5>獲取單個永久素材
api_url:
https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=ACCESS_TOKEN
引數:
media_id - 要獲取的素材的media_id
返回值:
分3類:
1.圖文
2.視訊
{
"title":TITLE,
"description":DESCRIPTION,
"down_url":DOWN_URL,
}
3.其他型別,返回的直接是內容,我們可以直接 file_put_contents() 寫入到本地檔案
6>刪除單個永久素材
api_url:
https://api.weixin.qq.com/cgi-bin/material/del_material?access_token=ACCESS_TOKEN
引數:
media_id - 要刪除的素材的media_id
7>修改永久圖文素材
api_url:
https://api.weixin.qq.com/cgi-bin/material/update_news?access_token=ACCESS_TOKEN
引數:
media_id // 要修改的圖文訊息的id
index// 要更新的文章在圖文訊息中的位置(多圖文訊息時,此欄位才有意義),第一篇為0
/*
注意點:
1.只有永久圖文素材,才能修改
2.圖文素材的修改,只能是對其中一條一條的條目進行修改,所以必須傳入 'index',從0開始
*/
8>獲取素材總數
api_url:
https://api.weixin.qq.com/cgi-bin/material/get_materialcount?access_token=ACCESS_TOKEN
返回值:
{
"voice_count":COUNT, // 語音總數量
"video_count":COUNT,// 視訊總數量
"image_count":COUNT,// 圖片總數量
"news_count":COUNT // 圖文總數量
}
9>獲取素材列表
api_url:
https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN
引數:
{
"type":TYPE, // 素材的型別,圖片(image)、視訊(video)、語音 (voice)、圖文(news)
"offset":OFFSET,// 從全部素材的該偏移位置開始返回,0表示從第一個素材 返回
"count":COUNT // 返回素材的數量,取值在1到20之間 - 每次獲取最多20條
}
返回值:
詳細看文件,這裡提2個:
"total_count": TOTAL_COUNT, // 該型別的素材的總數
"item_count": ITEM_COUNT,// 本次呼叫獲取的素材的數量