公众号推送早安问候以及天气预报(JAVA)

① 概述

功能点

  • 每天早上可以给指定的微信用户推送消息,经过公众号

  • 可以使用第三方接口丰富推送的消息内容

    • 百度天气api:添加天气信息推送
    • 天行数据api:添加美句、彩虹屁等语句推送
    • 通过后台计算纪念日推送
  • 效果图

技术栈点

  • spring boot实现后台
  • 微信测试账号的申请
  • 微信模版推送的配置
  • 对接百度天气api
  • 对接彩虹屁api
  • 对接优美句子api

源码开放

Gitee

GitHub

② 注册微信测试账号,编辑推送模板

  • 使用微信扫码登录此网站https://mp.weixin.qq.com/debug/cgi-bin/sandbox” />

  • 用户扫码关注得到用户的id

  • 编辑消息模板

  • 此步骤的模板id、用户微信号id、以及自己的appID、appsecret是后续推送所需要用到的

③ 使用spring boot 做后台开发,并且与第三方对接

使用第三方接口——控制台 | 百度地图开放平台 (baidu.com)

  • 在百度地图开放平台注册账号,并且到控制台中的应用创建一个应用(其中应用AK是推送需要使用到的

  • 设置ip白名单为0.0.0.0/0

使用第三方接口——天行数据TianAPI – 开发者API数据平台

  • 进去注册账号选择需要的句子接口使用就行

  • 每个接口都有实例代码,直接使用就行

  • 此案例使用了彩虹屁以及英语一句话两种

spring boot后台开发

  • 创建spring boot项目,+ weather.getWeek(),“#00BFFF”)); templateMessage.addData(new WxMpTemplateData(“tianqi”,weather.getText_now(),“#00FFFF”)); templateMessage.addData(new WxMpTemplateData(“low”,weather.getLow() + “”,“#173177”)); templateMessage.addData(new WxMpTemplateData(“temp”,weather.getTemp() + “”,“#EE212D”)); templateMessage.addData(new WxMpTemplateData(“high”,weather.getHigh()+ “”,“#FF6347” )); templateMessage.addData(new WxMpTemplateData(“windclass”,weather.getWind_class()+ “”,“#42B857” )); templateMessage.addData(new WxMpTemplateData(“winddir”,weather.getWind_dir()+ “”,“#B95EA3” )); templateMessage.addData(new WxMpTemplateData(“caihongpi”,CaiHongPiUtils.getCaiHongPi(),“#FF69B4”)); templateMessage.addData(new WxMpTemplateData(“lianai”,JiNianRiUtils.getLianAi()+“”,“#FF1493”)); templateMessage.addData(new WxMpTemplateData(“shengri1”,JiNianRiUtils.getBirthday_Jo()+“”,“#FFA500”)); templateMessage.addData(new WxMpTemplateData(“shengri2”,JiNianRiUtils.getBirthday_Hui()+“”,“#FFA500”)); templateMessage.addData(new WxMpTemplateData(“en”,map.get(“en”) +“”,“#C71585”)); templateMessage.addData(new WxMpTemplateData(“zh”,map.get(“zh”) +“”,“#C71585”)); String beizhu = “❤”; if(JiNianRiUtils.getLianAi() % 365 == 0){ beizhu = “今天是恋爱” + (JiNianRiUtils.getLianAi() / 365) + “周年纪念日!”; } if(JiNianRiUtils.getBirthday_Jo() == 0){ beizhu = “今天是生日,生日快乐呀!”; } if(JiNianRiUtils.getBirthday_Hui() == 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(); } }}

  • 编写定时任务

    @SpringBootApplication@EnableScheduling // 开启定时任务public class WechatpushApplication {    public static void main(String[] args) {        SpringApplication.run(WechatpushApplication.class, args);    }// 定时    @Scheduled(cron = "0 30 7 * * ?")    public void goodMorning(){        Pusher.push();    }}

④ 部署

  • 把项目打包成jar包

  • 把jar包上传到服务器并且运行起来

    # 运行命令nohup java -jar test.jar >temp.txt &

完成~