如何实现每天定时给女友/老婆发消息

简介: 如何实现每天定时给女友/老婆发消息

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

首发博客地址


开源地址:https://github.com/zysicyj/Vitality-reminder

元气提醒

利用微信订阅号的方式,给女朋友每天定时定时推送消息。

如果还没有女朋友的这个可以祝你一臂之力,早日脱单。

效果展示

  • 每日定时发送元气提醒,(发送的时间可配置)
  • 特殊时间也会发送特殊提醒,目前已有:发薪日、在一起纪念日、生日。之后会陆续增加
  • 有变成能力的可以自己改动代码,实现更多的提醒
使用步骤
  • 将仓库克隆至本地
  • npm installcnpm install安装依赖配置文件
  • 修改config.js的订阅号配置文件
  • 修改fnc.js个人重要信息节点配置文件
  • 创建订阅号测试号,配置群发消息模板
  • 代码文件上传至个人服务器,先绑定一个订阅号,获取accect_token
  • 设置指定发送的人员,指定发送的时间
  • 服务器挂上app.js脚本,配置全部完成!

修改配置config.js

修改fnc.js
  • 修改base对象的birthday、love、pay字段替换为个人的即可
创建微信公众号测试号,配置群发消息模板

微信公众平台接口测试帐号申请 网址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login。

image.png

  • 元气提醒
{{dateTime.DATA}} 
今天是 我们相恋的第{{love.DATA}}天 
距离上交工资还有{{pay.DATA}}天 
距离你的生日还有{{birthday.DATA}}天 
今日天气 {{weather.DATA}} 
今日温度 {{temp.DATA}}度 
空气湿度 {{humidity.DATA}} 
风向 {{wind.DATA}} 
每日一句 
{{message.DATA}} 
  • 工资模板
{{dateTime.DATA}} 
亲爱的,今天要发工资了,咱们账户上又多了一笔!注意查收~! 
  • 生日模板
{{dateTime.DATA}} 
听说今天是你人生当中第 {{individual.DATA}} 个生日?
天呐, 我差点忘记!因为你永远18岁~。 
尽管,日历告诉我:你又涨了一岁,但你还是那个天真可爱的小仙女,生日快乐! 
  • 纪念日模板
{{dateTime.DATA}} 
今天是在一起{{anniversary.DATA}}周年纪念日。 
经历了风风雨雨,最终依然走在一起,很幸运,很幸福!我们的小家庭要一直幸福下去。 

这里的模板id就是分别对应的config.js的那四个模板id

获取公众号的accect_token的权限

accect_token是获取我们访问公众号接口的一个必填字段,需要先获取。获取这个需要有url,所以需要准备一台个人的云服务器

  • 将整个项目放到云服务器上
  • 进入这个项目的目录
  • 检查config.js文件中的token字段的值是不是和公众号接口配置中的值是一样的,需要时一致的。
  • 用node运行一下connect.js脚本
  • 提交一下接口配置信息的认证。等待页面提示成功
  • 取消node的connect.js脚本

此处我省略了一些内容,connect.js监听的是8080,但是接口配置只能是80端口或者443端口,所以基于这个需要做个接口的转发,利用宝塔面板可以很容易的实现接口的反向代理。

设置指定发送的人员

进入api.js,修改两个template对象的touser字段

  • 这里没有写进配置文件是考虑到可能有要发给不同的人的需求?

进入app.js,修改CromJob构造函数的第一个参数来设置每日发送时间。

利用pm2运行app.js脚本
  • 先安装一下pm2
  • 进入项目目录
  • 运行 pm2 start app.js
测试

以上步骤如果都完成的了,可以手动在浏览器输入url:8080/baseurl:8080/base/important,或者调整app.js的监听时间改成即将到的时间来测试

总结

本项目本质是写好一个可以访问公众号群发消息模板的接口,然后利用CronJob实现每日定时发送模板信息。

目前模板的内容有限,模板的内容会不断新增,有能力的小伙伴如果有兴趣也可以自己修改代码实现更多的功能。

更新日志

  • 新增自定义情话(2022.10.05)

再config.js中可自定义配置love_message每日情话,每日随机从中取出一条发送

相关文章
|
存储 安全 数据库
|
Prometheus 监控 前端开发
prometheus|云原生|grafana-9.4.3版本的主题更改
prometheus|云原生|grafana-9.4.3版本的主题更改
1372 0
|
8月前
|
存储 关系型数据库 MySQL
携程面试:100 亿分库分表 如何设计? 核弹级 16字真经, 让面试官彻底 “沦陷”,当场发offer!
携程面试:100 亿分库分表 如何设计? 核弹级 16字真经, 让面试官彻底 “沦陷”,当场发offer!
携程面试:100 亿分库分表 如何设计?  核弹级 16字真经, 让面试官彻底 “沦陷”,当场发offer!
|
前端开发 开发者
「Mac畅玩鸿蒙与硬件23」鸿蒙UI组件篇13 - 自定义组件的创建与使用
自定义组件可以帮助开发者实现复用性强、逻辑清晰的界面模块。通过自定义组件,鸿蒙应用能够提高代码的可维护性,并简化复杂布局的构建。本篇将介绍如何创建自定义组件,如何向组件传递数据,以及如何在不同页面间复用这些组件。
296 5
「Mac畅玩鸿蒙与硬件23」鸿蒙UI组件篇13 - 自定义组件的创建与使用
|
Ubuntu JavaScript 开发工具
远程服务器ubuntu安装Jupyter Lab详细教程
远程服务器ubuntu安装Jupyter Lab详细教程
2169 0
|
JavaScript
Vue2级联选择(Cascader)
这是一个基于 Vue 3 的级联选择组件,支持多种自定义属性,如数据源、选中项、文本字段等。提供了丰富的配置项,如层级间隙、宽度、高度、禁用状态和占位符等,便于灵活使用。组件通过监听选择变化并触发回调事件,实现了动态更新与交互。
694 1
Vue2级联选择(Cascader)
|
人工智能 搜索推荐 算法
适合孩子的AI学习工具
【2月更文挑战第16天】适合孩子的AI学习工具
1053 2
适合孩子的AI学习工具
|
人工智能 关系型数据库 MySQL
Linux | MySQL安装Workbench图形化
Linux | MySQL安装Workbench图形化
|
设计模式 缓存 Java
【Java|多线程与高并发】线程池详解
Java线程池是一种用于管理和重用线程的机制,它可以在需要执行任务时,从线程池中获取线程,执行任务,然后将线程放回池中,以便后续使用。线程池可以有效地管理线程的数量,提高程序的性能和资源利用率。
【Java|多线程与高并发】线程池详解
|
开发框架 小程序 JavaScript
微信小程序与vue区别
微信小程序与vue区别