使用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. 临时素材添加完成之后,可以在微信公众平台后台查看、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典指针程序互换(一)

#include<stdio.h> huan(int *p,int *q){int t;t*p;*p*q;*qt;}int main(){ int a3,b10; huan(&a,&b);printf("%d %d",a,b); }这里我最疑惑的是不是改变*p的值就改变了a的值&#xff0c;为此&#xff0c;我专门敲了段代码&#xff0c;验证一下 #inclu…

Spring MVC 到底是如何工作的

转载自 Spring MVC 到底是如何工作的 这篇文章将深入探讨Spring框架的一部分——Spring Web MVC的强大功能及其内部工作原理。 这篇文章的源代码可以在GitHub上找到。 项目安装 在本文中&#xff0c;我们将使用最新、最好的Spring Framework 5。我们将重点介绍Spring的经典…

Entity Framework中的字符串插值引发担忧

将内插字符串&#xff08;Interpolated Strings&#xff09;自动地转化为参数化SQL语句&#xff0c;这是Entity Framework Core 2提供的一个新特性。虽然该特性从设计上是为了避免出现SQL语句编写上的问题&#xff0c;但是有人担心这会导致更多的SQL注入攻击。下面给出一个正确…

jeecg-boot集成xxl-job调度平台,每秒/每分钟/手动都能执行成功,但是设置固定时间不触发?

大家好&#xff0c;我是雄雄。 目录 这里写目录标题目录bug说明解决bug的过程解决方法结论今天在用jeecg-boot集成了的xxl-job的时候&#xff0c;遇到了个奇葩的问题&#xff08;其实一点都不奇葩&#xff09;&#xff0c;投入了几个人&#xff0c;一起看这个问题&#xff0c;看…

nssl1156-今天你AK了吗?【康托展开,高精度,二分答案,树状数组】

正题 题目大意 求n个数的全排列的第k个。 解题思路 首先康拓逆展开 ∑ii<nxi(n−i)!\sum^{i<n}_i x_i(n-i)!∑ii<n​xi​(n−i)! 求每个时候第xxx大的数 然后因为n(n−1)!n!n(n-1)!n!n(n−1)!n! so我们可以直接用余数 这是n3n3n3时是序列&#xff0c;我们可以发现我…

指针数组(二)

#include<stdio.h> void f(int *pA,int len){int i;for(i0;i<len;i){printf("%d",*(pAi)); }printf("\n");}main(){int a[5]{1,2,3,4,5};int b[4]{5,4,3,2};f(a,5);f(b,3);} 我想不用指针直接用函数来输出&#xff0c;看下 #include<stdio.h…

Spring经典面试题和答案

转载自 Spring经典面试题和答案 Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用&#xff0c;但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发&#xff0c;并通过POJO为基础的编…

use of CGLib-based proxies by setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching

大家好&#xff0c;我是雄雄。 今天在做异步的时候&#xff0c;报了个错&#xff0c;错误信息如下&#xff1a; Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled. 2022-08-25 17:58:30.784 [main] ERRO…

.NET Core 使用RabbitMQ

RabbitMQ简介AMQP&#xff0c;即Advanced Message Queuing Protocol&#xff0c;高级消息队列协议&#xff0c;是应用层协议的一个开放标准&#xff0c;为面向消息的中间件设计。消息中间件主要用于组件之间的解耦&#xff0c;消息的发送者无需知道消息使用者的存在&#xff0c…

nssl1157-简单数学题【约数,换元法】

正题 题目大意 给出N&#xff0c;求所有的T使得 N−12TN−T\frac{N-\frac12T}{N-T}N−TN−21​T​ 是正整数。 解题思路 我们定义xN−TxN-TxN−T 那么TN−xN−(N−T)TN-xN-(N-T)TN−xN−(N−T) 原来的式子边为 N−12(N−x)x\frac{N-\frac12(N-x)}{x}xN−21​(N−x)​ N−12N−…

冒泡法排序

#include<stdio.h> main(){int i,j,t,a[]{2,5,8,6,15,89,55,46};for(i0;i<7;i){for(j0;j<7-i;j){if(a[j]>a[j1]){ta[j1];a[j1]a[j];a[j]t;} }}for(i0;i<8;i){printf("%d ",a[i]);} } 刚开始还以为敲的有bug&#xff0c;数组里有五六位后排序就…

十分钟快速了解 ES6 Promise

转载自 十分钟快速了解 ES6 Promise 什么是Promise Promise最早由社区提出并实现&#xff0c;典型的一些库有Q&#xff0c;when&#xff0c; bluebird等&#xff1b;它们的出现是为了更好地解决JavaScript中异步编程的问题&#xff0c;传统的异步编程最大的特点就是地狱般的回…

揭示.NET Core和.NET Standard

作为.NET家族的最新成员&#xff0c;有很多关于.NET Core和.NET Standard的误解&#xff0c;以及它们于.NET Framework之间的区别。在这篇文章&#xff0c;我会准确的解释他们究竟是什么&#xff0c;并看看何时应选择哪一个。在详细介绍之前&#xff0c;首先查看.NET的结构图&a…

使用wxjava实现发表内容、预览信息以及推送文章

大家好&#xff0c;我是雄雄。 文章目录前言保存草稿的方法获取草稿箱列表根据media_id获取草稿箱信息给指定人发送预览文章推送文章&#xff08;按照标签推送&#xff09;前言 今天分享的内容有如下几个&#xff1a; 保存草稿根绝media_id会哦去草稿箱的信息发表内容&#x…

ssl提高组周六模拟赛【2018.9.22】

前言 这周居然考两道数学&#xff0c;反正是我的弱项。然后第一题考试的时候zz了竟然忘了怎么二分 成绩 只放Rank1∼10Rank\ 1\sim10Rank 1∼10 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1112015hjw2015hjw2015hjw2102102101001001007070704040402222017mysel…

指针数组(三)

#include<stdio.h>void g(int *pArr,int len){pArr[2]88;pArr[4]88;}void f(){int a[]{1,2,3,5,9},i;g(a,5);for(i0;i<5;i){printf("%d\t",a[i]);}}main(){f();}利用指针改变数组里的内容和内容

腾讯面试题:一条SQL语句执行得很慢的原因有哪些?

最近的招聘季&#xff0c;腾讯有一道面试题&#xff1a;一条SQL语句执行得很慢的原因有哪些&#xff1f; 其实&#xff0c;这个问题可以涉及到 MySQL 的很多核心知识&#xff0c;可以扯出一大堆&#xff0c;就像要考你计算机网络的知识时&#xff0c;问你“输入URL回车之后&am…

spring cloud+dotnet core搭建微服务架构:服务发现(二)

前言上篇文章《手把手教你使用spring clouddotnet core搭建微服务架构&#xff1a;服务治理&#xff08;-&#xff09;》实际上只讲了服务治理中的服务注册&#xff0c;服务与服务之间如何调用呢&#xff1f;传统的方式&#xff0c;服务A调用服务B&#xff0c;那么服务A访问的是…

猿创征文|公众号开发之路——为了研究公众号,我注册了公司

大家好&#xff0c;我是雄雄。 内容先知&#x1f60a;1.前言&#x1f636;2.想法&#x1f913;3.注册及研究&#x1f4aa;4.注册公司现在是北京时间&#xff1a;2022年9月10日23:34&#xff0c;农历八月十五日&#xff0c;2022年的教师节&#xff0c;也是中秋节&#xff0c;祝大…

学习手记(2018.9.15~2018.11.10)——备战NOIP2018

分层图常见方法 二进制压缩 用二进制表示一些东西的状态 形态 就是用第几层表示第几个形态(如第几天这样的) 树不重合点对数量 取下面的更优。 换元法 求一个数时可以不一定要求它&#xff0c;可以通过求和他有关联的式子从而间接的得到他。 数学归纳法 先证明i0i0i0时&…