开源免费的微信消息推送服务、10万次额度+2MB镜像,开发者福音

18 阅读6分钟

开源免费的微信消息推送服务、10万次额度+2MB镜像,开发者福音

微信消息推送

作为一名开发者,你一定遇到过这样的场景:

  • • 服务器半夜报警,需要第一时间通知
  • • 自动化脚本跑完任务,想知道结果
  • • 个人博客有新评论,想及时收到提醒
  • • NAS、路由器、树莓派这些设备需要状态监控

最直接的方案当然是——发微信。但问题来了:怎么发?

企业微信认证太麻烦,第三方服务收费不菲,自己写又要搞懂微信的整套 API、Token 刷新、模板消息规则……光是看文档就能劝退不少人。

最近发现一个开源项目 go-wxpush,用 Go 语言写的,完美解决了这个问题:极简部署、完全免费、每天10万次额度,而且 Docker 镜像才 2MB。

img

今天就带你拆解这个工具,5 分钟上手。

核心特性

先上结论,这个工具的几个杀手锏:

特性说明对开发者的价值
完全免费基于微信测试公众号个人和小团队零成本
部署极简Docker 镜像仅 2MB秒启动,资源占用极低
超高额度每天 10 万次推送个人项目根本用不完
原生体验微信原生弹窗+声音提醒和普通消息无差别
多用户支持可配置多个接收人团队协作友好
自带详情页消息点击可查看详情适合展示完整日志

三步搞定微信测试账号

正式部署前,需要先搞定微信这边的配置。别担心,5 分钟就能搞定。

第一步:申请测试公众号

打开这个链接:mp.weixin.qq.com/debug/cgi-b…

扫码登录后会看到一个测试号管理界面,这里有两个关键信息:


    
    
    
  - appID:类似 `wx1234567890abcdef` 的字符串
- appsecret:一串加密字符串

img

第二步:获取你的 UserID

在测试号页面下方有个"用户列表"区域,用你的微信扫描页面上的二维码,扫码后你的微信号就会出现在列表中,格式通常类似 oXXXXXX-xxxx

这个 UserID 就是消息接收者的唯一标识。

img

第三步:创建消息模板

在测试号页面的"新增测试模板"处,创建一个模板。关键点来了

模板内容必须按这个格式填写:


    
    
    
  内容: {{content.DATA}}

注意!不要只填 {{content.DATA}},前面必须加个"内容:"或者其他文字,否则推送会不显示内容!

创建成功后会得到一个 template_id,记下来,后面要用。

img

img

这样你就获得了

appid

secret

userid

template_id

把值复制出来备用。

部署方式

准备好上述参数后,就可以部署服务了。项目提供了三种方式:

方式一:Docker 一键部署(推荐)

这是最推荐的方式,镜像只有 2MB,秒启动。


    
    
    
  # 重新部署请先拉一遍最新的镜像
docker pull hezhizheng/go-wxpush:v4

# 参数格式与终端启动保持一致, 替换成实际值即可

docker run -it -d -p 5566:5566 --init --name go-wxpush4 hezhizheng/go-wxpush:v4 \
-port "5566" \
-title "测试标题5566" \
-content "测试内容5566" \
-appid "xxx" \
-secret "xxx" \
-userid "xxx-k08" \
-template_id "xxx-Ks_PwGm--GSzllU" \
-tz "Asia/Shanghai"

星哥实测:


    
    
    
  [root@xxxx ~]# curl http://127.0.0.1:5566/wxsend?title=服务器通知&content=服务已于北京时间%2026:00%20重启
[115196
[root@xxxx ~]# {"errcode":0,"errmsg":"ok"}

效果:

img

方式二:直接下载编译好的文件(最简单)

项目在 Releases 页面提供了编译好的可执行文件,支持 Windows、macOS、Linux 多平台。

下载后直接运行:


    
    
    
  ./go-wxpush_windows_amd64.exe -port "5566" \
  -title "测试标题" \
  -content "测试内容" \
  -appid "你的appID" \
  -secret "你的appsecret" \
  -userid "你的UserID" \
  -template_id "你的template_id" \
  -base_url "https://push.hzz.cool"

方式三:自行编译(完全控制)

如果你需要自定义或者想学习源码,可以直接编译:


    
    
    
  # 安装 gox 工具
go install github.com/mitchellh/gox@latest

# 生成各平台可执行文件
gox -osarch="windows/amd64" -ldflags "-s -w"
gox -osarch="linux/amd64" -ldflags "-s -w"
gox -osarch="darwin/amd64" -ldflags "-s -w"

API 使用:GET 和 POST 都支持

服务启动后,默认监听 5566 端口,推送接口非常简单。

GET 请求(适合快速测试)


    
    
    
  http://127.0.0.1:5566/wxsend?title=服务器通知&content=服务已于北京时间%2022:00%20重启

参数说明:

参数必填说明
title消息标题
content消息内容
appid微信测试号 appID
secret微信测试号 appsecret
userid接收者 UserID
template_id消息模板 ID
base_url消息详情页跳转地址
tz时区(默认东八区)

POST 请求(适合 Webhook 集成)

更适合自动化场景,比如 GitHub Actions、CI/CD、服务器监控等。


    
    
    
  curl --location --request POST 'http://127.0.0.1:5566/wxsend' \
--header 'Content-Type: application/json' \
--data-raw '{
  "title": "Webhook 通知",
  "content""自动化任务已完成。",
  "appid""你的appID",
  "secret""你的appsecret",
  "userid""你的UserID",
  "template_id""你的template_id"
}'

响应结果

成功时返回:


    
    
    
  {
  "errcode": 0,
  "errmsg": "ok"
}

失败时会返回对应的错误码和错误信息。

实战场景

理论说完了,来点实际应用场景:

场景一:服务器监控报警

写个简单的监控脚本,CPU 超过 80% 时触发推送:


    
    
    
  #!/bin/bash
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *([0-9.]*)%* id.*/\1/" | awk '{print 100 - $1}')

if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then
  curl "http://127.0.0.1:5566/wxsend?title=⚠️服务器报警&content=CPU使用率:${CPU_USAGE}%"
fi

场景二:CI/CD 通知

在 GitHub Actions 中添加推送步骤,构建完成自动通知:


    
    
    
  - name: 发送微信通知
  run: |
    curl -X POST http://your-server:5566/wxsend \
      -H "Content-Type: application/json" \
      -d '{
        "title""✅ 构建成功",
        "content""项目 ${{ github.repository }} 分支 ${{ github.ref }} 构建完成"
      }'

场景三:自动化脚本结果

每天定时跑的数据分析脚本,跑完推送结果:


    
    
    
  import requests

def send_notification(title, content):
    url = "http://127.0.0.1:5566/wxsend"
    params = {
        "title": title,
        "content": content
    }
    requests.get(url, params=params)

send_notification("📊 数据分析完成""今日新增用户: 123, 活跃用户: 456")

友情提醒

    1. 测试号限制:使用的是微信测试公众号,扫描人数限制在 100 人,但个人和小团队完全够用
    1. 模板格式:再次强调,模板内容一定要加前缀,比如"内容: {{content.DATA}}"
    1. 不要滥用公共服务:虽然作者提供了免费服务,但建议自行部署,避免给别人带来压力
    1. 时区问题:默认使用东八区,如果需要其他时区,可以通过 tz 参数设置

总结

写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;也别忘了关注星哥玩云!这里有满满的干货分享,还有轻松有趣的技术交流~点个赞、分享给身边的小伙伴,一起成长,一起玩转技术世界吧! 😊

go-wxpush 这个项目虽然小,但解决了开发者的真实痛点:简单、免费、可靠

如果你正在为微信消息推送发愁,不妨试试这个方案。5 分钟就能搭建起来,从此告别监控盲区。

项目地址github.com/hezhizheng/…