100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 【微信公众号】7 SpringBoot整合WxJava新增临时 永久素材

【微信公众号】7 SpringBoot整合WxJava新增临时 永久素材

时间:2021-07-24 18:08:32

相关推荐

【微信公众号】7 SpringBoot整合WxJava新增临时 永久素材

公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。素材管理接口对所有认证的订阅号和服务号开放。通过本接口,公众号可以新增临时素材(即上传临时多媒体文件)。

1、官方文档

新增临时素材

https://developers./doc/offiaccount/Asset_Management/New_temporary_materials.html

新增永久素材

https://developers./doc/offiaccount/Asset_Management/Adding_Permanent_Assets.html

2、基于WxJava实现素材上传

import me.mon.api.WxConsts;import me.mon.bean.result.WxMediaUploadResult;import me.mon.error.WxErrorException;import me.chanjar.weixin.mp.api.WxMpService;import me.chanjar.weixin.mp.bean.material.WxMpMaterial;import me.chanjar.weixin.mp.bean.material.WxMpMaterialUploadResult;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.io.File;@RestController@RequestMapping("wx/mp/media")public class WxMpMediaController {@Autowiredprivate WxMpService wxMpService;/*** 上传临时素材** @return* @throws WxErrorException*/@GetMapping("uploadTemp")public String uploadTemp() throws WxErrorException {File file = new File("E:\\图片素材\\logo.png");WxMediaUploadResult wxMediaUploadResult = wxMpService.getMaterialService().mediaUpload(WxConsts.MediaFileType.IMAGE, file);return "上传临时素材成功:mediaId:" + wxMediaUploadResult.getMediaId();}/*** 上传永久素材** @return* @throws WxErrorException*/@GetMapping("uploadPermanent")public String uploadPermanent() throws WxErrorException {File file = new File("E:\\图片素材\\logo.png");WxMpMaterial wxMpMaterial = new WxMpMaterial();wxMpMaterial.setFile(file);wxMpMaterial.setName("logo");WxMpMaterialUploadResult wxMpMaterialUploadResult = wxMpService.getMaterialService().materialFileUpload(WxConsts.MediaFileType.IMAGE, wxMpMaterial);return "上传永久素材成功:mediaId:" + wxMpMaterialUploadResult.getMediaId();}}

素材分为临时素材和永久素材,临时素材在微信后台保存时间为3天,即3天后media_id失效永久素材数量有上限:图文消息素材、图片素材上限为100000,其他类型为1000永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用,图片将被屏蔽)

3、测试素材上传

1、访问接口上传临时素材:

localhost:8080/wx/mp/media/uploadTemp

上传成功,返回了 mediaId,我们可以用 mediaId 给用户发送消息,在下面会介绍

2、访问接口上传永久素材

localhost:8080/wx/mp/media/uploadPermanent

4、使用上传的素材被动回复用户消息

在前面的文章:【微信开发】4、SpringBoot整合WxJava处理微信消息、事件推送 中提到我们会接收到用户发给公众号的消息,其中包括了事件和消息,当用户给我们发送图片的时候,我们也给用户回复一张图片,伪代码如下:

/*** 图片消息*/if (messageType.equals("image")) {WxMpXmlOutImageMessage images = WxMpXmlOutMessage.IMAGE()// 获取上传到微信服务器的临时素材mediaid..mediaId("Qk_d9_yDnYMakjCQopymJmyXewzIhySCyfcEuPNnYkRjboribry9pj22DHLCAuPt").fromUser(touser).toUser(fromUser).build();String result = images.toXml();System.out.println("响应给用户的消息:" + result);return result;}

其中 mediaId 为我们上传的素材 mediaId,永久和临时素材都可以,下面我们进行测试:

可以看到,用户发送图片消息给公众号后,公众号成功返回了图片信息,证明我们的素材已经上传成功了

如您在阅读中发现不足,欢迎留言!!!

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