搭建专属于你的微信消息推送服务

2021-01-17 18:53:52 +08:00
 JustSong

描述

利用测试号来给自己的微信推送消息,不依赖他人的公众号和服务。

例如可用于监控 Githhub star 数量 :D

项目地址: https://github.com/songquanpeng/message-pusher

在线预览: https://wechat-message.herokuapp.com/

截图

搭建步骤

域名设置

先去你的云服务提供商那里添加一个子域名,解析到你的目标服务器。

服务器端配置

  1. 配置 Node.js 环境,推荐使用 nvm
  2. 下载代码:git clone https://github.com/songquanpeng/message-pusher.git
  3. (可选)修改根目录下的 config.js 文件,在其内可以修改监听的端口,也可配置是否选择开放注册,注意 href 字段不仅仅是域名,后面要加 /。
  4. 安装依赖:npm i
  5. 安装 pm2:npm i -g pm2
  6. 使用 pm2 启动服务:pm2 start ./app.js --name message-pusher
  7. 使用 Nginx 反代我们的 Node.js 服务,默认端口 3000 (你可以在 config.js 中进行修改)。
    1. 修改应用根目录下的 nginx.conf 中的域名以及端口号,并创建软链接:sudo ln -s /path/to/nginx.conf /etc/nginx/sites-enabled/message-pusher.conf注意修改这里的 /path/to/nginx.conf,且必须是绝对路径,当然如果不想创建软链接的话也可以直接将配置文件拷贝过去:sudo mv ./nginx.conf /etc/nginx/sites-enabled/message-pusher.conf
    2. 之后使用 certbot 申请证书:sudo certbot --nginx
    3. 重启 Nginx 服务:sudo service nginx restart

微信公众平台端配置

  1. 首先前往此页面拿到 APP_ID 以及 APP_SECRET 。
  2. 使用微信扫描下方的测试号二维码,拿到你的 OPEN_ID 。
  3. 新增模板消息模板,模板标题随意,模板内容填 {{text.DATA}},提交后可以拿到 TEMPLATE_ID 。
  4. 填写接口配置信息,URL 填 https://你的域名 /前缀 /verify,TOKEN 随意,先不要点击验证。(前缀默认和用户名相同)
  5. 现在访问 https://你的域名 /,默认用户为 admin,默认密码为 123456,登录后根据系统提示完成配置,之后点击提交按钮。
  6. 之后回到微信公众平台测试号的配置页面,点击验证。

验证是否配置成功

访问 https://你的域名 /前缀 /Hi,如果你的微信能够收到一条内容为 Hi 的模板消息,则配置成功。

其他

  1. 后续将支持推送邮件消息,webhook 以及 Markdown 消息,敬请关注。
  2. 如果只是个人使用的话可以考虑使用 v0.1.1 版本,更加轻量。
  3. 项目地址: https://github.com/songquanpeng/message-pusher
9050 次点击
所在节点    分享创造
38 条回复
Blanke
2021-01-17 20:12:26 +08:00
得服务号才可以吧?
JustSong
2021-01-17 20:24:13 +08:00
@Blanke 不需要,直接用测试号,详见 README
daben1990
2021-01-17 20:26:01 +08:00
厉害,mark 一个
Alwaysonline
2021-01-17 20:31:01 +08:00
可以替换 openwrt 的 severchan 不?
xctcc
2021-01-17 20:32:30 +08:00
这个测试号是直接显示在聊天列表里还是要点订阅号进去看的
nuk
2021-01-17 20:45:14 +08:00
刚刚弄了推送 UPS 的消息到微信企业号。。
JustSong
2021-01-17 21:20:35 +08:00
@Alwaysonline 没用过 OpenWRT,如果只是调用接口的话都是发送 HTTP 请求,应该没啥问题;如果是部署的话,这个是 Node.js 写的,没试过。

@xctcc 要点进去
fox0001
2021-01-17 23:11:36 +08:00
只能给自己推送吗?可以指定家庭成员接收推送吗?
JustSong
2021-01-17 23:41:39 +08:00
@fox0001 支持多用户的,不同用户对应不同前缀
lniwn
2021-01-18 08:44:41 +08:00
server 酱?
JustSong
2021-01-18 09:01:13 +08:00
@lniwn 类似其测试号版本
cat9life
2021-01-18 09:22:15 +08:00
这个不错啊 微信测试号用了几年了
ychost
2021-01-18 09:30:29 +08:00
这个太麻烦了,必须关注公众号,还是钉钉机器人或者 telegram 机器人方便点,
JustSong
2021-01-18 09:33:34 +08:00
@ychost 关注的是自己的测试号,不会有其他人的推送
justin2018
2021-01-18 09:44:28 +08:00
很简约 啥时候支持 markdown 😁
elfive
2021-01-18 09:48:09 +08:00
用了这么多……还是 bark 用起来最舒服,安装也简单,一个容器就搞定了
abersheeran
2021-01-18 09:57:54 +08:00
很有意思啊。不过我不太懂 node.js ,我晚上写一个 Python 的用好了。感谢分享。
JustSong
2021-01-18 10:04:17 +08:00
@justin2018 应该下个周末就会去搞

@abersheeran Node.js 环境搭建照着 README 来应该不会遇到什么问题,我感觉写得还算详细
henryhu
2021-01-18 10:14:19 +08:00
不错哦,支持一个
draguo
2021-01-18 10:59:21 +08:00
测试号是收在订阅号里面的,外面不能第一时间看到,就自己使用完全没必要上公众号,直接微信里开启 qq 邮箱提醒,然后程序发邮件就行,维护简单还有记录

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745694

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX