微信每日早安推送「建议收藏」

微信每日早安推送「建议收藏」七夕到啦,做一个程序员给女朋友的浪漫礼物吧。微信公众号推送。每日早安推送

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

整个源码已经开放,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文件里引入下面类库

        

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

2.核心推送代码如下


import com.alibaba.fastjson.JSONObject;
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;

/**
 *@ClassName Pusher
 *@Description TODO
 *@Author ydzhao
 *@Date 2022/8/2 
 */
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();
        }
    }
}

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

正常我们企业开发,实现微信模版消息推送,必须要有微信公众号,备案的网址,并且最麻烦的一点是要获取到用户的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.纪念日计算

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

   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 30 7 * * ?")
    public void goodMorning(){
        Pusher.push(openId,templateId);
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187736.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 低成本高利润产品(高精度测量)

    1,TM7705是完整的16位低成本Σ-Δ模数转换器(ADC);该芯片完全兼容AD7705,程序可以直接替换;2,TM7705两路全差分输入通道,在定制比率应用器件时,差分基准电压输入还能提供极大的灵活性;3,三线串行接口;4,SPI®,QSPI?,MICROWIRE?,DSP兼容;5,SCLK上可接受施密特触发器输入;6,提供模拟输入缓冲;7,工作电压2.7V至3.3V或4.75V…

    2022年4月12日
    47
  • 【综合评价方法 变异系数权重法】指标权重确定方法之变异系数权重法

    【综合评价方法 变异系数权重法】指标权重确定方法之变异系数权重法变异系数法是直接利用各项指标所包含的信息,通过计算得到指标的权重。是一种客观赋权的方法。此方法的基本做法是:在评价指标体系中,指标取值差异越大的指标,也就是越难以实现的指标,这样的指标更难反映被评价单位的差距。由于评价指标体系中的各项指标的量纲不同,不宜直接比较其差别程度。为了消除各项评价指标的量纲不同的影响,需要用各项指标的变异系数来衡量各项指标取值的差异程度。各项指标的变异系数公式如下:…

    2022年5月3日
    42
  • Cutout Standard扣图软件「建议收藏」

    Cutout Standard扣图软件「建议收藏」CutoutStandard是款功能强大且专业的抠图工具。内置强大的功能,可以从相片背景中将您需要的对象抠出和制作蒙太奇图片,且提供Photoshop的抠图插件,非常方便实用。感兴趣的朋友快来下载使用吧。软件功能  【更改背景】CutoutStandard最新版允许您将新剪切的对象与您选择的另一个图像组合在一起。例如,您可以将剪切对象放在“其他位置”。  【模糊背景】选择此功能时,程序切换到模糊模式。您可以将图像的背景模糊到不同程度。此外,背景将被保留,并且唯一的组件会受到模糊效果的影响。这

    2022年9月24日
    2
  • Oracle数据库入门心得[通俗易懂]

    Oracle数据库入门心得[通俗易懂]Oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。  一、定位  oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,

    2022年10月20日
    3
  • kafka 集群测试

    kafka 集群测试1.ISR集合2.消费者3.brokersleader4.zookeeper

    2022年4月25日
    49
  • LabVIEW灰度图像操作与运算(基础篇—2)[通俗易懂]

    LabVIEW灰度图像操作与运算(基础篇—2)[通俗易懂]图像操作、像素操作以及图像运算等前期的图像操作不仅会在空间域增强图像,还能极大地提高后续图像处理算法的执行速度及其有效性。

    2022年6月19日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号