企业微信之消息推送(菜鸟一枚,勿喷)
分类:
文章
•
2024-06-27 17:15:58
前几天公司让我去写个这个功能,在网上借鉴了很多大神的例子,最终还是做出来了
下面是大神博客的地址:https://www.cnblogs.com/shirui/p/7402128.html,大家可以去看看写了很多功能,好废话不多说 直接上图
大家一定要仔细看需求文档 我因为没有仔细看需求文档踩了许多坑
大家一定要仔细看需求文档 我因为没有仔细看需求文档踩了许多坑
大家一定要仔细看需求文档 我因为没有仔细看需求文档踩了许多坑



我们消息类型比较多,但是我们老大只让我做了文本,可是当我把所有的都写好了,他才告诉我,所以有最后一步没有写,不过我的java基础比较差,所以还是挺难的,最后做好了,还改了很多版,最终版是我们把所以的人员放在数据库,定义了一个接口去调用,所有的公共参数都写在配置文件中,因为这个和需求文档稍微有点不同,我就没有把最终版放上去了,只把文档的代码放上去





好了这是比较重要的几张图其实文档都是差不多的 ,大家自己看自己的 下面上代码
1: 首先本项目用的是spootBoot…我一个大数据开发工程师,尽然让我写springboot!!! springboot我之前没有学过,所以很多东西都是临时上网学的,大家不喜勿喷啊,我就是一个菜鸟,欢迎大家一起来交流,不多说,上代码,这个是一开始普通的maven,后来改成了springBoot

我把每种消息格式否封装成一个类,类太多了,后面看看有么有时间上代码,这个类的里面的属性就是文档里面的,如下图:


AccessToken.class(这个版本代码并没有去缓存token,不过也很简单,获取token的时候,同时也获取当时的时间,然后将token,expiresIn,time放进配置文件里,下次获取token的时候,先获取现在的时间和之前获取token的时间+失效时间去对比,就行了,在用Perproties的时候,也出现了一些问题,主要是项目项目运行了,一开始设置的token,expiresIn,time初始值为null,然后将得到token,expiresIn,time,将获取到的值设进Perproties,发现target下面编译的class文件中的Perproties没有办法设进去,大家应该不会遇到这个问题吧 哈哈哈哈哈哈哈哈哈哈或)

WeiXinParamsUtil.class(这里应该还有一个应用id,因为是最初版,没写进去,不好意思)

MyX509TrustManager.class 因为是https请求,所以要一个证书信任器,具体干嘛的 百度

WeiXinUtil.class 这个类比较重要,方法基本都在这个类中
方法一 :发起https请求并获取结果



方法二: 获取token

方法三: https 上传临时素材请求(因为后来才知道我们只要文本的消息格式就可以了,所以这个方法和方法四都没没有测试,大家谨慎哈)



方法四: https 获取临时上传素材


SendMessageService.class



测试类:SendMessage001.class


FindMeaasgeServlet.class(这个是我们自己改的,大家不用写这个)



好了就是这样了,下面我把我最终版的展示给大家看看
