之前很火给女朋友推送微信服务号消息是怎么做的?

发布时间 2023-04-13 21:40:42作者: Java3y

经过了几天的奋战,终于把微信服务号的模板消息给写完了。后端其实没花多少时间,因为之前已经有同学提过pull request了,我在这基础之上简单优化下就完事了,主要的时间都是花在前端上,对前端页面和参数的适配比较麻烦。

消息推送平台?推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型

不多说了,先来看看效果图吧。

要实现微信服务号的模板消息推送,首先我们得有一个服务号。要值得注意的是,服务号是服务号,订阅号是订阅号。服务号会有单独的聊天框,所以Java3y实际上是一个订阅号。

服务号申请要有企业的资料,而我,是没有的。那我这次是怎么调试的呢?后来经朋友圈提醒,微信是能让我们申请测试号的,相关的API都是能用的,得知了以后,那我不就屁颠屁颠花了几天实现了嘛。

申请测试号链接:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

进入到测试号以后,我们能把自己加入到测试的微信号内,拿到对应的openId

创建几个测试下发的模板;

0reG3uUoUSonh0jGi-8ufj3VheCFlaoXqxBxD-zvswE
  
待处理作业提醒
  
{{first.DATA}} 作业类型:{{keyword1.DATA}} 作业名称:{{keyword2.DATA}} 所属项目:{{keyword3.DATA}} 提交日期:{{keyword4.DATA}} {{remark.DATA}}    

我们还能直接拿到appIDappsecret,这就相当于当前服务号账号的信息。那我要做的就是把这个信息加入到消息推送平台的账号体系下。

在新建模板发送消息的时候,我们就可以选择到这个被加入到账号体系的账户,拿到这个账户下的模板列表,再得到具体模板的详情信息啦,这会有个联动的效果。

我这就一个完整的消息模板,来让大家看看,顺便讲讲相关的功能吧。

image-20221202200955523

保存之后就会跳转到模板的列表页,就能看到刚才所建的模板啦。

这时候,我们点击测试按钮,就能看到下发的效果:

至于功能实现,我就不在这多说啦。因为消息推送平台的架构已经搭好了,接入消息这个过程没多少工作量,主要是适配整个架构代码的实现就好了。至于做了什么改动,你们看commit就好啦。

几个关键代码入口:

  • 前端交互:com.java3y.austin.web.controller.OfficialAccountController
  • 发送消息入口:com.java3y.austin.service.api.impl.service.SendServiceImpl#send
  • 真正处理微信服务号模板消息发送入口:com.java3y.austin.handler.handler.impl.OfficialAccountHandler#handler

如果想学Java项目的,我还是强烈推荐我的开源项目消息推送平台Austin(8K stars) ,可以用作毕业设计,可以用作校招,可以看看生产环境是怎么推送消息的。开源项目消息推送平台austin仓库地址:

消息推送平台?推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型