如何实现每天定时给女友 - 老婆发消息
如何实现每天定时给女友 - 老婆发消息
程序员朱永胜有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准
https://blog.zysicyj.top
这篇文章是从 Github ReadMe 拷贝的,内容实践下载是没问题的,能够正常发送短信,而且也不需要服务器,本地也能跑起来
开源地址:https://github.com/zysicyj/Vitality-reminder
元气提醒
利用微信订阅号的方式,给女朋友每天定时定时推送消息。
如果还没有女朋友的这个可以祝你一臂之力,早日脱单。
效果展示
- 每日定时发送元气提醒,(发送的时间可配置)
- 特殊时间也会发送特殊提醒,目前已有:发薪日、在一起纪念日、生日。之后会陆续增加
- 有变成能力的可以自己改动代码,实现更多的提醒
使用步骤
- 将仓库克隆至本地
npm install
或cnpm install
安装依赖配置文件- 修改 config.js 的订阅号配置文件
- 修改 fnc.js 个人重要信息节点配置文件
- 创建订阅号测试号,配置群发消息模板
- 代码文件上传至个人服务器,先绑定一个订阅号,获取 accect_token
- 设置指定发送的人员,指定发送的时间
- 服务器挂上 app.js 脚本,配置全部完成!
修改配置 config.js
appid 和 AppSecret 都是申请微信公众号申请成功就可以获取的,但是这个群发的接口如果是以个人的名义申请的公众号是不能获取到这个接口权限的,这时候可以用一个测试开发公众号,上面有几乎所有的接口权限。微信公众平台接口测试帐号申请
网址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login。
第三方天气接口我是在聚合数据平台申请的,是免费的接口,这里替换成各自的聚合数据接口的天气接口 key 即可 聚合数据
地址:https://www.juhe.cn/docs?bd_vid=7775114093417537769
- 这里就有了这些基本的 id,直接复制即可。
修改 fnc.js
- 修改 base 对象的 birthday、love、pay 字段替换为个人的即可
创建微信公众号测试号,配置群发消息模板
网址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login。
元气提醒
工资模板
生日模板
纪念日模板
这里的模板 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/base
和 url:8080/base/important
, 或者调整 app.js 的监听时间改成即将到的时间来测试
总结
本项目本质是写好一个可以访问公众号群发消息模板的接口,然后利用 CronJob 实现每日定时发送模板信息。
目前模板的内容有限,模板的内容会不断新增,有能力的小伙伴如果有兴趣也可以自己修改代码实现更多的功能。
更新日志
新增自定义情话(2022.10.05)
再 config.js 中可自定义配置
love_message
每日情话,每日随机从中取出一条发送