使用wxJava开发微信服务(公众)号,实现新建素材的功能

举报
穆雄雄 发表于 2022/12/05 21:04:11 2022/12/05
【摘要】 大家好,我是雄雄。 前言微信服务(公众号)号开发,前面已经整理过了几篇文章了,如下:java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现微信公众平台安全模式下传输xml数据包时解密方式微信服务(公众)号实现用户关注自动注册成为会员这几篇文章都是一些基础,且均为基于原生开发的,写的比较多,直到偶然间发现了一款开源工具类:wxjava,刚用的时候,对于之前辛辛苦苦...

大家好,我是雄雄。

在这里插入图片描述

前言

微信服务(公众号)号开发,前面已经整理过了几篇文章了,如下:

  1. java实现微信服务(公众)号用户关注时,获取openid,安全模式下的加密解密实现
  2. 微信公众平台安全模式下传输xml数据包时解密方式
  3. 微信服务(公众)号实现用户关注自动注册成为会员

这几篇文章都是一些基础,且均为基于原生开发的,写的比较多,直到偶然间发现了一款开源工具类:wxjava,刚用的时候,对于之前辛辛苦苦写的代码,有点于心不忍,但是慢慢的,发现这个工具类真是强大啊,好多东西都给你写完了。地址在这里:WxJava

就是文档有点不完善,不是最新的,有些是微信官方已经废弃的方法,但是文档里面没有及时改过来,不过没事,我们可以查javadoc,地址在这里:WxJava的JavaSoc地址

新建临时素材

下面我们来看看如何使用工具类新建临时素材的。
代码很简单:

/**
     * 添加临时素材
     */
    @GetMapping("/saveTemporaryMaterial")
    public String saveTemporaryMaterial() {
        WxMediaUploadResult wxMediaUploadResult = null;
        try {
            //文件地址
            File file = new File("G:\\曲谱\\dabaguilai.jpg");
            wxMediaUploadResult = wxService.getMaterialService()
                    .mediaUpload(WxConsts.MediaFileType.IMAGE, file);
        } catch (WxErrorException e) {
            e.printStackTrace();
        }
        return "上传临时素材成功:mediaId:" + wxMediaUploadResult.getMediaId();
    }

wxService是在上面声明的:

private final WxMpService wxService;

还有个需要注意的地方,类上一定要加注解:@AllArgsConstructor,不然wxService无法自动注入。
上传完之后,我们会给我们返回一个临时素材的media_Id,我们可以拿着这个id去添加草稿等操作。

新建永久素材

根据临时素材,照猫画虎,直接写一个方法,新建永久素材。
但是需要注意,永久素材的规则如下(来源于微信公众平台官方文档):
在这里插入图片描述
实现代码如下:

/**
     * 添加永久素材
     */
    @GetMapping("/savePerpetualMaterial")
    public String savePerpetualMaterial() {
        WxMpMaterialUploadResult wxMpMaterialUploadResult = null;
        try {
            File file = new File("G:\\相册\\19级三班照片\\test.jpg");
            WxMpMaterial wxMpMaterial = new WxMpMaterial();
            wxMpMaterial.setFile(file);
            wxMpMaterial.setName("logo");
            wxMpMaterialUploadResult = wxService.getMaterialService().materialFileUpload(WxConsts.MediaFileType.IMAGE, wxMpMaterial);

        } catch (WxErrorException e) {
            e.printStackTrace();
        }
        return "上传永久素材成功:mediaId:" + wxMpMaterialUploadResult.getMediaId();
    }

注意事项

  1. 临时素材在微信官方只保存3天,意味着超过三天后,media_id就会失效,找不到。
  2. 怎么在springboot中导入wxJava,可以自行网上搜索,如果还不行,可以评论联系我,我给你发一版。
  3. 临时素材添加完成之后,可以在微信公众平台后台查看、
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。