Skip to content

元气提醒

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

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

源码地址:元气提醒

效果展示

最终的效果

  • 每日定时发送元气提醒,(发送的时间可配置)
  • 特殊时间也会发送特殊提醒,目前已有:发薪日、在一起纪念日、生日。之后会陆续增加
  • 有变成能力的可以自己改动代码,实现更多的提醒

使用步骤

  • 将仓库克隆至本地
  • npm installcnpm install安装依赖配置文件
  • 修改 config.js 的订阅号配置文件
  • 修改 fnc.js 个人重要信息节点配置文件
  • 创建订阅号测试号,配置群发消息模板
  • 代码文件上传至个人服务器,先绑定一个订阅号,获取 accect_token
  • 设置指定发送的人员,指定发送的时间
  • 服务器挂上 app.js 脚本,配置全部完成!

修改配置 config.js

config.js配置信息

image-20211011105146791

  • 这里就有了这些基本的 id,直接复制即可。

修改 fnc.js

image-20211011105435010

  • 修改 base 对象的 birthday、love、pay 字段替换为个人的即可了

创建微信公众号测试号,配置群发消息模板

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

在这里插入图片描述

  • 元气提醒

    {{dateTime.DATA}}
    今天是 我们相恋的第{{love.DATA}}天
    距离上交工资还有{{pay.DATA}}天
    距离你的生日还有{{birthday.DATA}}天
    今日天气 {{weather.DATA}}
    今日温度 {{temp.DATA}}度
    空气湿度 {{humidity.DATA}}
    风向 {{wind.DATA}}
    每日一句
    {{message.DATA}}
    {{dateTime.DATA}}
    今天是 我们相恋的第{{love.DATA}}天
    距离上交工资还有{{pay.DATA}}天
    距离你的生日还有{{birthday.DATA}}天
    今日天气 {{weather.DATA}}
    今日温度 {{temp.DATA}}度
    空气湿度 {{humidity.DATA}}
    风向 {{wind.DATA}}
    每日一句
    {{message.DATA}}
  • 工资模板

    {{dateTime.DATA}}
    亲爱的,今天要发工资了,咱们账户上又多了一笔!注意查收~!
    {{dateTime.DATA}}
    亲爱的,今天要发工资了,咱们账户上又多了一笔!注意查收~!
  • 生日模板

    {{dateTime.DATA}}
    听说今天是你人生当中第 {{individual.DATA}} 个生日?
    天呐, 我差点忘记!因为你永远18岁~。
    尽管,日历告诉我:你又涨了一岁,但你还是那个天真可爱的小仙女,生日快乐!
    {{dateTime.DATA}}
    听说今天是你人生当中第 {{individual.DATA}} 个生日?
    天呐, 我差点忘记!因为你永远18岁~。
    尽管,日历告诉我:你又涨了一岁,但你还是那个天真可爱的小仙女,生日快乐!
  • 纪念日模板

    {{dateTime.DATA}}
    今天是在一起{{anniversary.DATA}}周年纪念日。
    经历了风风雨雨,最终依然走在一起,很幸运,很幸福!我们的小家庭要一直幸福下去。
    {{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 实现每日定时发送模板信息。

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