下面这个类我对fastweixin 框架的简单封装调用,大家可以参考,如果需要QYAPIConfigExt和MainServernSupport,请参考本教程以前几篇文章。
关于素材的官方说明:
企业可以使用素材管理的接口将多媒体文件包括图片、音频、视频、文件以及图文消息上传到素材库。对多媒体文件、多媒体消息素材的获取和调用等操作,是通过media_id来进行的。通过本接口,企业可以上传或下载素材。素材文件类型包括两种:
临时素材文件:(media_id)会在上传到微信服务器3天后自动删除,以节省服务器资源。
永久素材文件:(media_id)会一直保存在微信服务器上,但是对企业能够保存的永久素材数量有所限制: 整个企业图文消息素材和图片素材数目的上限为5000,其他类型为1000.
主页型应用不能调用接口上传,获取,及删除素材。
对于老的微信开发教程补充:临时素材和永久素材的管理,原先的(老的)素材管理就是临时素材管理,区别就是永久素材可以永久保留在微信服务器上。
package com.nsjs;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import com.fastwixinextend.QYAPIConfigExt;
import com.github.sd4324530.fastweixin.api.MaterialAPI;
import com.github.sd4324530.fastweixin.api.enums.MediaType;
import com.github.sd4324530.fastweixin.api.response.DownloadMaterialResponse;
import com.github.sd4324530.fastweixin.api.response.UploadMaterialResponse;
import com.github.sd4324530.fastweixin.company.api.QYMediaAPI;
import com.github.sd4324530.fastweixin.company.api.response.DownloadMediaResponse;
import com.github.sd4324530.fastweixin.company.api.response.UploadMediaResponse;
import com.github.sd4324530.fastweixin.message.Article;
public class MediaManage {
public QYAPIConfigExt config = null;
public QYAPIConfigExt initConfig() {
if (config == null) {
config = new QYAPIConfigExt(MainServernSupport.getCropId(), MainServernSupport.getAPPSecret(),
"luozhuang", System.currentTimeMillis());
}
return config;
}
public QYAPIConfigExt initConfig(String CropId, String APPSecret, String AccessToken, long AccessTokenTime) {
QYAPIConfigExt config;
config = new QYAPIConfigExt(CropId, APPSecret, AccessToken, AccessTokenTime);
return config;
}
/**
* 上传临时素材
*
* @param mediaPathString
* @param type
* @return
*/
public String uploadMedia(String mediaPathString, MediaType type) {
QYMediaAPI mediaAPI = new QYMediaAPI(initConfig());
UploadMediaResponse response1 = mediaAPI.upload(type, new File(mediaPathString));
return response1.getMediaId();
}
public String uploadMedia(File mediaFile, MediaType type) {
QYMediaAPI mediaAPI = new QYMediaAPI(initConfig());
UploadMediaResponse response1 = mediaAPI.upload(type, mediaFile);
return response1.getMediaId();
}
/**
* 下载临时素材
*
* @param MediaID
* @param out
* @throws IOException
*/
public void downloadMaterial(String MediaID, OutputStream out) throws IOException {
QYMediaAPI materialAPI = new QYMediaAPI(initConfig());
// 此处是下载图片的文件
//
DownloadMediaResponse response = materialAPI.download(MediaID);
response.writeTo(out);
out.close();
}
public static void main(String[] args) {
MediaManage mediaManage = new MediaManage();
String MediaId = mediaManage.uploadMedia("C:\\Users\\luozhuang\\Desktop\\topbg02.png", MediaType.IMAGE);
FileOutputStream fos;
try {
fos = new FileOutputStream(new File("C:\\Users\\luozhuang\\Desktop\\topbg03.png"));
mediaManage.downloadMaterial(MediaId, fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}