借鉴:https://blog.youkuaiyun.com/m0_38130105/article/details/126160873?spm=1001.2014.3001.5506
官方消息推送文档地址:https://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl
效果图预览
一、 注册微信测试账号
-
微信扫码登录 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login ,登录成功后,就会生成测试账号的appid和appsecret
-
需要让想要收到消息的用户扫描并关注此测试账号,消息推送需要使用相对应用户的openId
-
新增要推送的消息模板
/**
* 模板内容示例
* 模板中参数内容必须以".DATA"结尾,否则视为保留字;
* 模板保留符号"{
{ }}"
* 版本更新后{
{XX.DATA}}不可以单独作为一行展示,所以尽量都是和文字在一行呈现,可以在代码中使用'\r'实现换行效果
*/
今天是{
{
date.DATA}}
今日份天气:{
{
weather.DATA}} {
{
ext.DATA}}
最低温度:{
{
low.DATA}} 度 {
{
lowExt.DATA}}
最高温度:{
{
high.DATA}} 度 {
{
highExt.DATA}}
今天是我们相识的第{
{
meet.DATA}}天
今日份彩虹屁奉上🌈{
{
caihongpi.DATA}}
- 新增模板成功后,获取到templateId,等会消息推送会用到。
二、搭建springBoot项目
- 搭建一个普通的springBoot项目即可,在pom文件中需要加入微信模板消息推送的sdk
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>3.3.0</version>
</dependency>
- 编写核心代码,对应的工具类代码等下会单独描述
public void push(String openId){
// 获取天气 --- 工具类等下放到下方
JSONObject todayWeather = Tianqi.getNanjiTianqi();
// 拼接跳转路径 --- 模板消息可以实现点击后跳转到某个固定的路径,这里是我做的页面,等下在下方单独描写
String url = getUrl(todayWeather,openId);
// 初始化消息模板
// openId就是对应用户关注测试号后生成的openId -- 根据个人情况修改
// Constant.templateId就是模板消息的templateId -- 根据个人情况修改
// url就是点击模板是跳转的路径, 如果不需要跳转可以不写
WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
.toUser(openId)
.templateId(Constant.templateId)
.url(url)//点击模版消息要访问的网址
.build();
/**
* 下方开始填写模板中的变量信息
* WxMpTemplateData构造函数的第一个参数是变量名称,也就是{
{date.DATA}}中的前半部分,后方DATA不需要
* WxMpTemplateData构造函数的第二个参数是想要给变量赋的值,根据个人情况填写
* WxMpTemplateData构造函数的第三个参数是字体颜色,不过现在更新后已经不支持修改颜色了,所以写不写无所谓
*/
templateMessage.addData(new WxMpTemplateData("date",todayWeather.getString("date") + " "+ todayWeather