现如今社会,微信可谓是人人都有,殊不知大家有没有注意微信推送这个东西。当我们关注公众号之后,就经常会收到公众号的推送,注册完会员会收到会员确认信息,坐完滴滴之后收到的账单信息以及里程积分到账提醒,这些实时的信息,不知道大家有没有好奇过微信怎么会知道我们的动向。
今天我就带领着大家从开发角度出发,浅谈微信公众号的推送功能。
首先从推送的前提说起:微信推送这个功能是基于一个已经认证过的服务号公众号,其次每次的推送是有触发事件的,比如你坐完滴滴车,下车时收到的扣费信息以及里程积分到账信息,这个触发事件是滴滴司机点击了确认送达的按钮,并不是谁监控到你下车了就给你推。
其次从微信前端页面上的配置说起:
一、在公众号前端页面中添加你想要开发的模板
第二步、在首页白名单处将你的服务器ip设为白名单,否则会产生推送会抛异常
最后我们来看看开发步骤
1、获取模版ID
通过在模版消息功能的模版库中使用需要的模版,可以获得模版ID。
2、请求接口
请注意,URL置空,则在发送后,点击模版消息会进入一个空白页面(ios),或无法点击(android)。
POST请求
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
这里需要查看获取ACCESS_TOKEN的文档
这里是请求的json参数,我这里是把参数封装了
String url = String.format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token);
Map<String, Object> bigMap = new HashMap<>();
bigMap.put("touser", "微信OPENID");
bigMap.put("template_id", "模板ID");
bigMap.put("topcolor", "#FF0000");
Map<String, Object> smallMap = new HashMap<>();
smallMap.put("first", this.getSmallData("第一个参数", "#173177"));
smallMap.put("keyword1", this.getSmallData("第二个参数", "#173177"));
smallMap.put("keyword2", this.getSmallData("第三个参数", "#173177"));
smallMap.put("keyword3", this.getSmallData("第四个参数", "#173177"));
smallMap.put("remark", this.getSmallData("第五个参数", "#FF0000"));
bigMap.put("data", smallMap);
httpAPIService.doPostJson(url, JSONObject.toJSONString(bigMap));
public Map<String, String> getSmallData(String value, String color) {
Map<String, String> map = new HashMap<>();
map.put("value", value);
map.put("color", color);
return map;
}
这样就大功告成了,有问题的添加微信及关注公众号进行问题答疑
公众号: 微信: