微信公众号每日早安推送,给女朋友的浪漫礼物

做一个程序员给女朋友的浪漫礼物吧。

最终效果

GitHub地址:

所用知识点

  1. springboot实现java后台
  2. 接入百度天气api
  3. 彩虹屁api或者自己写个情话库
  4. 每日金句api或者自己写个金句库

一、springboot创建java后台

Idea创建一个Springboot的maven工程

1.核心推送代码如下

public class Pusher {
          
   
    private static String appId = "xxxx";
    private static String secret = "xxx";
 
    public static void push(String openId,String templateId){
          
   
        //1,配置
        WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage();
        wxStorage.setAppId(appId);
        wxStorage.setSecret(secret);
        WxMpService wxMpService = new WxMpServiceImpl();
        wxMpService.setWxMpConfigStorage(wxStorage);
        //2,推送消息
        WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
                .toUser(openId)
                .templateId(templateId)
                .build();
        //3,如果是正式版发送模版消息,这里需要配置你的信息
        JSONObject todayWeather = Tianqi.getNanjiTianqi();
        templateMessage.addData(new WxMpTemplateData("riqi",todayWeather.getString("date") + "  "+ todayWeather.getString("week"),"#00BFFF"));
        templateMessage.addData(new WxMpTemplateData("tianqi",todayWeather.getString("text_day"),"#00FFFF"));
        templateMessage.addData(new WxMpTemplateData("low",todayWeather.getString("low") + "","#173177"));
        templateMessage.addData(new WxMpTemplateData("high",todayWeather.getString("high")+ "","#FF6347" ));
        templateMessage.addData(new WxMpTemplateData("caihongpi",CaiHongPi.getCaiHongPi(),"#FF69B4"));
        templateMessage.addData(new WxMpTemplateData("lianai",JiNianRi.getLianAi()+"","#FF1493"));
        templateMessage.addData(new WxMpTemplateData("shengri",JiNianRi.getShengRi()+"","#FFA500"));
        templateMessage.addData(new WxMpTemplateData("jinju",CaiHongPi.getJinJu()+"","#C71585"));
        //templateMessage.addData(new WxMpTemplateData("jiehun",JiNianRi.getJieHun()+""));
        templateMessage.addData(new WxMpTemplateData("linzhen",JiNianRi.getLinZhen()+"","#FF6347"));
        String beizhu = "情人节快乐!";
        if(JiNianRi.getJieHun() % 365 == 0){
          
   
            beizhu = "今天是结婚纪念日!";
        }
        if(JiNianRi.getLianAi() % 365 == 0){
          
   
            beizhu = "今天是恋爱纪念日!";
        }
        if(JiNianRi.getLinZhen() % 365 == 0){
          
   
            beizhu = "今天是结婚纪念日!";
        }
        templateMessage.addData(new WxMpTemplateData("beizhu",beizhu,"#FF0000"));
 
        try {
          
   
            System.out.println(templateMessage.toJson());
            System.out.println(wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage));
        } catch (Exception e) {
          
   
            System.out.println("推送失败:" + e.getMessage());
            e.printStackTrace();
        }
    }
}

3.生成自己的模板

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

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

三、丰富功能

1.接入百度天气api

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

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

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

3.纪念日计算

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

public static int jiNianRi(String date) {
          
   
        int day = 0;
        try {
          
   
            long time = System.currentTimeMillis() - simpleDateFormat.parse(date).getTime();
            day = (int) (time / 86400000L);
        } catch (ParseException e) {
          
   
            e.printStackTrace();
        }
        return day;
    }

4.定时任务

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

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

4.定时任务*

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

@Scheduled(cron = "0 0 7 * * ?")
    public void goodMorning(){
          
   
        Pusher.push(openId,templateId);
    }
经验分享 程序员 微信小程序 职场和发展