程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

微信每日早安推送

发布于2022-08-07 20:27     阅读(1384)     评论(0)     点赞(13)     收藏(1)


七夕到啦,做一个程序员给女朋友的浪漫礼物吧。

整个源码已经开放,GitHub地址:

ydzhao-reyes/weixin-tuisong (github.com)

一个摸鱼的下午,简单介绍一下怎么做的吧,纯后端java,写的比较随意,仅仅达到了功能要求。

所用知识点

  • 1. springboot实现java后台
  • 2.微信测试账号的申请
  • 3.微信模版推送的配置
  • 4.接入百度天气api
  • 5.彩虹屁api或者自己写个情话库
  • 6.每日金句api或者自己写个金句库

一、springboot创建java后台

至于springboot怎么创建java后台,我这里就不再唠叨了,大家百度一下,一大堆的文章。这里只需要重点讲解下以下几点。

  • 1.在pom.xml文件里引入下面类库

        

  1. <!--微信模版消息推送三方sdk-->
  2. <dependency>
  3. <groupId>com.github.binarywang</groupId>
  4. <artifactId>weixin-java-mp</artifactId>
  5. <version>3.3.0</version>
  6. </dependency>

2.核心推送代码如下

  1. import com.alibaba.fastjson.JSONObject;
  2. import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
  3. import me.chanjar.weixin.mp.api.WxMpService;
  4. import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
  5. import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
  6. import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
  7. /**
  8. *@ClassName Pusher
  9. *@Description TODO
  10. *@Author ydzhao
  11. *@Date 2022/8/2
  12. */
  13. public class Pusher {
  14. private static String appId = "xxxx";
  15. private static String secret = "xxx";
  16. public static void push(String openId,String templateId){
  17. //1,配置
  18. WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage();
  19. wxStorage.setAppId(appId);
  20. wxStorage.setSecret(secret);
  21. WxMpService wxMpService = new WxMpServiceImpl();
  22. wxMpService.setWxMpConfigStorage(wxStorage);
  23. //2,推送消息
  24. WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
  25. .toUser(openId)
  26. .templateId(templateId)
  27. .build();
  28. //3,如果是正式版发送模版消息,这里需要配置你的信息
  29. JSONObject todayWeather = Tianqi.getNanjiTianqi();
  30. templateMessage.addData(new WxMpTemplateData("riqi",todayWeather.getString("date") + " "+ todayWeather.getString("week"),"#00BFFF"));
  31. templateMessage.addData(new WxMpTemplateData("tianqi",todayWeather.getString("text_day"),"#00FFFF"));
  32. templateMessage.addData(new WxMpTemplateData("low",todayWeather.getString("low") + "","#173177"));
  33. templateMessage.addData(new WxMpTemplateData("high",todayWeather.getString("high")+ "","#FF6347" ));
  34. templateMessage.addData(new WxMpTemplateData("caihongpi",CaiHongPi.getCaiHongPi(),"#FF69B4"));
  35. templateMessage.addData(new WxMpTemplateData("lianai",JiNianRi.getLianAi()+"","#FF1493"));
  36. templateMessage.addData(new WxMpTemplateData("shengri",JiNianRi.getShengRi()+"","#FFA500"));
  37. templateMessage.addData(new WxMpTemplateData("jinju",CaiHongPi.getJinJu()+"","#C71585"));
  38. //templateMessage.addData(new WxMpTemplateData("jiehun",JiNianRi.getJieHun()+""));
  39. templateMessage.addData(new WxMpTemplateData("linzhen",JiNianRi.getLinZhen()+"","#FF6347"));
  40. String beizhu = "情人节快乐!";
  41. if(JiNianRi.getJieHun() % 365 == 0){
  42. beizhu = "今天是结婚纪念日!";
  43. }
  44. if(JiNianRi.getLianAi() % 365 == 0){
  45. beizhu = "今天是恋爱纪念日!";
  46. }
  47. if(JiNianRi.getLinZhen() % 365 == 0){
  48. beizhu = "今天是结婚纪念日!";
  49. }
  50. templateMessage.addData(new WxMpTemplateData("beizhu",beizhu,"#FF0000"));
  51. try {
  52. System.out.println(templateMessage.toJson());
  53. System.out.println(wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage));
  54. } catch (Exception e) {
  55. System.out.println("推送失败:" + e.getMessage());
  56. e.printStackTrace();
  57. }
  58. }
  59. }

二、注册微信测试账号,并实现推送功能

正常我们企业开发,实现微信模版消息推送,必须要有微信公众号,备案的网址,并且最麻烦的一点是要获取到用户的openid,作为个人,这些条件基本上都不具备。所以今天就来带大家注册微信开发测试账号,来轻松实现微信模版消息推送。

1.微信扫码登录下面网址 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 扫码登录成功后,就会给我们生成微信公号的appid和appsecret

 2.微信扫码关注 测试号二维码,微信给我们返回我们的openid,这个openid在推送时特别重要。因为你推送肯定要知道推送给 谁啊,就比如你打电话,肯定要知道用户的电话号码吧。这个openid就是我们要推送给那个用户的唯一标示。

3.生成自己的模板

参数需以{{开头,以.DATA}}结尾 ,ex:{{caihongpi.DATA}},代码里面替换就可以了

templateMessage.addData(new WxMpTemplateData("caihongpi",CaiHongPi.getCaiHongPi(),"#FF69B4"));

4.拿到模板id,用户微信号id,就可以推送消息了

三、丰富功能

1.接入百度天气api

控制台 | 百度地图开放平台 (baidu.com)

注册百度开发者,申请开放百度天气的api。具体如何接入网上教程很多,可以自行百度

2.接入彩虹屁的api或者自己开发一个彩虹屁库

彩虹屁的api:天行数据TianAPI - 开发者API数据平台

网上有一些调用彩虹屁库的api,或者自己写一堆情话放在文件里,读取到内存里,用当前的天数取模就可以了。每日金句同理

3.纪念日计算

这里写了个粗略的计算方法,计算多少天。

  1. public static int jiNianRi(String date) {
  2. int day = 0;
  3. try {
  4. long time = System.currentTimeMillis() - simpleDateFormat.parse(date).getTime();
  5. day = (int) (time / 86400000L);
  6. } catch (ParseException e) {
  7. e.printStackTrace();
  8. }
  9. return day;
  10. }

4.定时任务

写个定时任务每天早上7点半起床的时候推送

  1. @Scheduled(cron = "0 30 7 * * ?")
  2. public void goodMorning(){
  3. Pusher.push(openId,templateId);
  4. }

原文链接:https://blog.csdn.net/m0_38130105/article/details/126160873



所属网站分类: 技术文章 > 博客

作者:咿呀咿呀哟

链接:http://www.javaheidong.com/blog/article/472568/4eb3cf2cf363318103d0/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

13 0
收藏该文
已收藏

评论内容:(最多支持255个字符)