600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 微信上传临时素材|微信公众号发送图片

微信上传临时素材|微信公众号发送图片

时间:2019-04-23 11:55:14

相关推荐

微信上传临时素材|微信公众号发送图片

项目场景:用户扫码(带场景值)关注后推送一段文字再加上一张图片(待判定);

图片来源:读取项目下的图片

工具:WxMpService-----这是一个好东西 调用微信接口有他就不愁

导入方式 maven下

<dependency><groupId>me.chanjar</groupId><artifactId>weixin-java-mp</artifactId><version>1.3.3</version></dependency>

推送事件

首先。调用客服接口发送文字,其次调用方法发送图片

private WxMpXmlOutMessage handleSpecial(WxMpXmlMessage wxMessage, WxMpService weixinService) throws Exception {String text = "";try {text = "****************" ;weixinService.getKefuService().sendKefuMessage(WxMpKefuMessage.TEXT().toUser(wxMessage.getFromUser()).content(text).build());} catch (Exception e) {this.logger.error(e.getMessage(), e);}// 调用发送图片 方法return returenImage(wxMessage, weixinService);}

图片发送方法

读取项目下文件,为了打包成jar包后能够继续使用,因此不能使用Flie类,只能读取成流

其中微信接口中

type 是 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)

media 是 文件的后缀 如下".jpg"

下面逻辑当然是乱写的 但是上传和发送的方法是对的

private WxMpXmlOutMessage returenImage(WxMpXmlMessage wxMessage, WxMpService weixinService) {InputStream logo = this.getClass().getClassLoader().getResourceAsStream("static/images/test.jpg");try {result = wxMpService.getMaterialService().mediaUpload(WxConsts.MaterialType.IMAGE,".jpg", logo);} catch (WxErrorException e) {this.logger.error("上传错误:" + e.getMessage(), e);e.printStackTrace();}return new ImageBuilder().build(result.getMediaId(), wxMessage, weixinService);}

上面是获取jar包中的素材 有时候我们需要获取网络的素材就可以这样做

private WxMpXmlOutMessage returenImage(WxMpXmlMessage wxMessage, WxMpService weixinService) {URL url = null;HttpURLConnection conn = null;InputStream inStream = null;WxMediaUploadResult result = null;try {//new一个URL对象url = new URL("http://qiniu-public.***********/029502df3963467b601e2bcc7698161.jpg");//打开链接conn = (HttpURLConnection) url.openConnection();//设置请求方式为"GET"conn.setRequestMethod("GET");//超时响应时间为5秒conn.setConnectTimeout(5 * 1000);//通过输入流获取图片数据inStream = conn.getInputStream();result = wxMpService.getMaterialService().mediaUpload(WxConsts.MaterialType.IMAGE, ".jpg", inStream);} catch (IOException e) {this.logger.error("获取错误:" + e.getMessage(), e);e.printStackTrace();} catch (WxErrorException e) {this.logger.error("上传错误:" + e.getMessage(), e);e.printStackTrace();}return result != null ? (new ImageBuilder().build(result.getMediaId(), wxMessage, weixinService)) : null;}

PS:如有不懂,可以留言评论或者私信告知,如果感觉帮到你了,麻烦点个赞,你的鼓励是我最大的动力。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。