wechat-public-account-push配置详解:从零开始定制你的专属情书
wechat-public-account-push是一个用于微信公众号/微信测试号给用户执行微信推送的脚本,改编自目前流行的【给女朋友的浪漫,微信自动推送消息】,用Nodejs实现而成。通过简单配置,你可以轻松定制每日天气、纪念日提醒、土味情话等个性化内容,让你的爱意每天准时送达。
准备工作:获取项目与基本环境
首先需要将项目克隆到本地,使用以下命令:
git clone https://gitcode.com/gh_mirrors/we/wechat-public-account-push
项目结构清晰,主要配置文件位于config/目录下,包括exp-config.js、index.cjs、server-config.js和template-config.cjs。其中template-config.cjs是定制情书内容的核心文件,我们将在后续详细介绍。
选择合适的消息通道
要实现微信推送,首先需要选择一个消息通道。目前支持四种通道,各有特点:
- PushDeer:iOS推荐,无后台推送,但Android可能存在推送权限问题
- 微信测试号:免费但功能受限,标题和头像无法自定义
- server酱服务号:免费版每天5条消息,显示为方糖服务号
- push-plus推送加服务号:免费版每天200条消息,显示为推送加服务号
推荐新手使用微信测试号入门,虽然有一定限制,但配置简单且完全免费。你可以在微信公众平台申请测试号,获取APP_ID和APP_SECRET。
核心配置文件详解
config/index.cjs:基础参数配置
这个文件是项目的主配置文件,包含了推送通道选择、功能开关、用户信息等关键设置。以下是一些重要参数的说明:
const USER_CONFIG = {
// 选择推送通道
USE_PASSAGE: 'wechat-test',
// 微信测试号APP_ID和APP_SECRET
APP_ID: '',
APP_SECRET: '',
// 功能开关
SWITCH: {
weather: true, // 天气功能
holidaytts: true, // 节假日提醒
CIBA: true, // 金山每日一句
oneTalk: true, // 每日一言
earthyLoveWords: true, // 土味情话
// 更多功能开关...
},
// 用户信息配置
USERS: [
{
name: '亲爱的', // 收件人姓名
id: '', // 用户ID,在测试号后台获取
useTemplateId: '', // 模板ID
province: '北京', // 所在省份
city: '北京', // 所在城市
horoscopeDate: '01-01',// 星座日期
// 更多用户信息...
}
],
// 纪念日配置
CUSTOMIZED_DATE_LIST: [
{ keyword: 'love_day', date: '2022-09-08' }, // 恋爱纪念日
{ keyword: 'marry_day', date: '2023-05-20' }, // 结婚纪念日
],
// 自定义文本插槽
SLOT_LIST: [
{
keyword: 'lover_prattle',
contents: [
'因为太喜欢你,所以看谁都像是情敌。',
'申请成为你爱里的永久居民。',
'遇见你,就好像捡到了100斤的运气'
]
}
]
}
配置时需要注意以下几点:
APP_ID和APP_SECRET建议通过环境变量设置,避免直接写在代码中USERS数组可以添加多个用户,实现一对多推送CUSTOMIZED_DATE_LIST用于设置各种纪念日,会自动计算天数SLOT_LIST可以添加自定义文本,支持随机选择功能
自定义关键词配置示例,通过{{love_day.DATA}}在模板中引用
template-config.cjs:情书模板定制
模板文件决定了推送消息的内容和格式,你可以根据喜好设计专属情书。以下是一个简单的模板示例:
const TEMPLATE_CONFIG = [
{
id: '0001',
title: '亲爱的,早上好',
desc: `
**{{date.DATA}}**
今天是我们相识的第{{love_day.DATA}}天
---
城市:{{city.DATA}}
天气:{{weather.DATA}}
气温:{{max_temperature.DATA}} / {{min_temperature.DATA}}
---
{{one_talk.DATA}}
{{lover_prattle.DATA}}
`
}
]
模板支持部分Markdown语法,如粗体**文本**、斜体*文本*和分隔线---。你可以通过{{变量名.DATA}}的形式引用配置中的数据,常用变量包括:
- 基础信息:
date.DATA(日期)、city.DATA(城市) - 天气信息:
weather.DATA(天气)、max_temperature.DATA(最高气温) - 纪念日:
love_day.DATA(恋爱天数)、marry_day.DATA(结婚天数) - 自定义文本:
one_talk.DATA(每日一言)、lover_prattle.DATA(自定义情话)
部署与运行方式
wechat-public-account-push提供多种部署方式,适合不同需求的用户:
方式一:GitHub Actions(推荐新手)
这是最简单的方式,不需要自己的服务器,完全免费。步骤如下:
- Fork项目到自己的GitHub仓库
- 在仓库设置中添加
APP_ID、APP_SECRET等密钥 - 修改
.github/workflows/weixin-push-on-time.yml中的定时任务时间
默认执行时间为每天北京时间7:30,你可以通过修改cron表达式自定义时间:
schedule:
- cron: '30 23 * * *' # 每天国际时间23:30,即北京时间7:30
方式二:本地或服务器运行
如果你有自己的服务器,可以选择本地部署:
- 安装Node.js环境
- 克隆项目并安装依赖:
npm install - 修改配置文件
- 使用PM2启动:
node start_pm2.js
这种方式的好处是推送更稳定,不受GitHub Actions排队影响。
高级定制技巧
1. 个性化节日提醒
通过FESTIVALS配置可以实现生日、纪念日等特殊日期的提醒:
FESTIVALS: [
{ type: '*生日', name: '亲爱的', year: '1996', date: '09-09', isShowAge: true },
{ type: '节日', name: '结婚纪念日', year: '2020', date: '09-03' },
]
type前加*表示阴历日期isShowAge: true会显示年龄- 系统会自动计算距离节日的天数
2. 课程表功能
对于学生用户,可以配置课程表功能:
courseSchedule: {
benchmark: { date: '2022-09-23', isOdd: true },
courses: {
odd: [
['08:00-09:35 高等数学', '09:50-11:25 高等物理'], // 周一
// 其他日期课程...
],
even: [
[], // 周一(双周无课)
// 其他日期课程...
]
}
}
3. 天行API增强功能
通过天行数据申请API,可以获得更多高级功能:
TIAN_API: {
key: '你的API_KEY',
morningGreeting: true, // 早安心语
eveningGreeting: true, // 晚安心语
weather: 3, // 未来3天天气
networkHot: 3 // 3条热搜
}
常见问题解决
推送失败怎么办?
- 检查
APP_ID和APP_SECRET是否正确 - 确认用户
id是否已关注测试号 - 查看GitHub Actions日志或本地运行日志定位问题
如何更新到最新版本?
- 在自己的仓库中点击"Sync fork"
- 点击"Update branch"同步最新代码
- 如果有配置冲突,建议先备份自己的配置文件
总结
wechat-public-account-push为你提供了一个简单而强大的工具,让每日的微信推送充满爱意。通过本文介绍的配置方法,你可以轻松打造专属的情书推送系统。无论是纪念日提醒、天气问候,还是每日情话,都能让你的心意准时传达。
赶快行动起来,给你的那个TA一个惊喜吧!如果觉得这个项目有意思,别忘了给仓库点个star支持一下哦~
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考








