一、新增臨時素材
公眾號經常有需要用到一些臨時性的多媒體素材的場景,例如在使用接口特別是發送消息時,對多媒體文件、多媒體消息的獲取和調用等操作,是通過media_id來進行的。素材管理接口對所有認證的訂閱號和服務號開放。通過本接口,公眾號可以新增臨時素材(即上傳臨時多媒體文件)。
注意點:
1、臨時素材media_id是可復用的。
2、媒體文件在微信后台保存時間為3天,即3天后media_id失效。
3、上傳臨時素材的格式、大小限制與公眾平台官網一致。
圖片(image): 2M,支持PNG\JPEG\JPG\GIF格式
語音(voice):2M,播放長度不超過60s,支持AMR\MP3格式
視頻(video):10MB,支持MP4格式
縮略圖(thumb):64KB,支持JPG格式
4、需使用https調用本接口。
接口調用請求說明
http請求方式:POST/FORM,使用https https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE 調用示例(使用curl命令,用FORM表單方式上傳一個多媒體文件): curl -F media=@test.jpg "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE"
參數說明
參數 | 是否必須 | 說明 |
---|---|---|
access_token | 是 | 調用接口憑證 |
type | 是 | 媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video)和縮略圖(thumb) |
media | 是 | form-data中媒體文件標識,有filename、filelength、content-type等信息 |
返回說明
正確情況下的返回JSON數據包結果如下:
參數 | 描述 |
---|---|
type | 媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video)和縮略圖(thumb,主要用於視頻與音樂格式的縮略圖) |
media_id | 媒體文件上傳后,獲取標識 |
created_at | 媒體文件上傳時間戳 |
錯誤情況下的返回JSON數據包示例如下(示例為無效媒體類型錯誤):
根據上面的接口,我們定義了一個上傳臨時素材的方法,包含文件目錄和文件類型這兩個參數,我們這里依然采用RestTemplate工具類進行文件上傳
我們在swagger中新建一個Controller用以提交我們的上傳請求,並測試我們的代碼是否正確
啟動我們的項目,在swagger中輸入一個有效的文件路徑(這里假如是圖片類型),type設置為image
可以看到,我們成功上傳了臨時文件,並獲取到了該文件的media_id(這個后續很重要!!!)
二、獲取臨時素材
臨時素材主要分為三類(圖片、音頻,視頻),圖片和音頻文件支持下載到本地,視頻文件支持獲取視頻的URL地址
(1)獲取臨時圖片
(2)獲取臨時音頻
(3)獲取視頻素材地址
三、測試
這里我們僅以上傳臨時圖片素材並下載臨時圖片素材為例,我們在我們的Controller中新增一個根據media_id獲取臨時圖片類型素材的方法
我們把我們剛才上傳臨時素材成功返回的media_id傳給我們的方法
可以看到我們的swagger返回帶有Download file的超級鏈接,點擊即可下載我們的圖片,當然我們可以直接在瀏覽器直接輸入我們的完整請求地址
點擊這個Download File,我們成功的下載到這個上傳的臨時圖片
這里貼出完整的代碼,自行修改以獲得其他類型的臨時文件,不做贅述
謝謝各位,我們下回繼續再說!