写了一个极简的微信消息推送服务,有需要的可以试试~

28 条回复
332 次浏览

Go-WXPush - 微信消息推送服务 (基于 golang)

这是一个基于 golang 开发的微信测试公众号模板消息推送服务。它提供了一个简单的 API 接口,让您可以轻松地通过 HTTP 请求将消息推送到指定的微信用户。 github 地址 https://github.com/hezhizheng/go-wxpush

✨ 特性

✅ 完全免费,下载即使用
✅ 支持 Docker 一键部署(镜像容器大小仅 2MB)
✅ 每天 10 万次额度,个人用不完
✅ 真正的微信原生弹窗 + 声音提醒
✅ 支持多用户
✅ 提供免费服务 https://push.hzz.cool (请勿滥用)
✅ 跳转稳定,自带消息详情页面 (默认使用 https://push.hzz.cool/detail , 可自己部署后使用参数替换)

⚠️ 部署条件 (具体可查看 github )

🚀 部署指南

下载编译好的文件启动

  • 启动参数
    • 命令行启动参数(可不加,启动之后直接在 url 上拼接参数也可) ./go-wxpush_windows_amd64.exe -port "5566" -title "测试标题" -content "测试内容" -appid "xxx" -secret "xxx" -userid "xxx-k08" -template_id "xxx-Ks_PwGm--GSzllU" -base_url "https://push.hzz.cool"
    • url 请求参数(get) 与命令行参数名称一致 /wxsend?appid=xxx&secret=xxx&userid=xxx-k08&template_id=xxx-Ks_PwGm--GSzllU&base_url=https://push.hzz.cool&content=保持微笑,代码无 bug!

自行编译可执行文件(跨平台)

复制
# 用法参考 https://github.com/mitchellh/gox
# 生成文件可直接执行 
gox -osarch="windows/amd64" -ldflags "-s -w" -gcflags="all=-trimpath=${PWD}" -asmflags="all=-trimpath=${PWD}"
gox -osarch="darwin/amd64" -ldflags "-s -w" -gcflags="all=-trimpath=${PWD}" -asmflags="all=-trimpath=${PWD}"
gox -osarch="linux/amd64" -ldflags "-s -w" -gcflags="all=-trimpath=${PWD}" -asmflags="all=-trimpath=${PWD}"
gox -osarch="linux/arm64" -ldflags "-s -w" -gcflags="all=-trimpath=${PWD}" -asmflags="all=-trimpath=${PWD}"

🐳 Docker 启动

  • 将编译好的文件放在与 Dockerfile 同目录
  • 构建镜像
复制
docker build -t go-wxpush:v2 .
  • 启动镜像,参数与命令行保持一致
复制
docker run -d -p 5566:5566 --name go-wxpush0 go-wxpush:v2 \
-port "5566" \
-title "测试标题" \
-content "测试内容" \
-appid "xxx" \
-secret "xxx" \
-userid "xxx-k08" \
-template_id "xxx-Ks_PwGm--GSzllU"

🐳 Docker 一键部署

复制
# 重新部署请先拉一遍最新的镜像
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"

⚙️ API 使用方法

服务部署成功后,您可以通过构造 URL 发起 GET 请求来推送消息。

请求地址

复制
http://127.0.0.1:5566/wxsend

请求参数

参数名类型是否必填描述
portString指定启动端口(仅针对命令行)
titleString消息的标题。
contentString消息的具体内容。
appidString临时覆盖默认的微信 AppID。
secretString临时覆盖默认的微信 AppSecret。
useridString临时覆盖默认的接收用户 OpenID。
template_idString临时覆盖默认的模板消息 ID。
base_urlString临时覆盖默认的跳转 URL。
tzString时区(默认东八区)

使用示例

基础推送

向默认配置的所有用户推送一条消息:

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

临时覆盖用户

向一个临时指定的用户推送消息:

复制
http://127.0.0.1:5566/wxsend?title=私人提醒&content=记得带钥匙&userid=temporary_openid_here

Webhook / POST 请求

除了 GET 请求,服务也支持 POST 方法,更适合用于自动化的 Webhook 集成。

请求地址

复制
http://127.0.0.1:5566/wxsend

请求方法

复制
POST

请求头 (Headers)

复制
{
  "Content-Type": "application/json"
}

请求体 (Body)

请求体需要是一个 JSON 对象,包含与 GET 请求相同的参数。

复制
{
  "title": "Webhook 通知",
  "content": "这是一个通过 POST 请求发送的 Webhook 消息。"
}

使用示例 (cURL)

复制
curl --location --request POST 'http://127.0.0.1:5566/wxsend' \
--data-raw '{
    "title": "来自 cURL 的消息",
    "content": "自动化任务已完成。"
  }'

成功响应

如果消息成功发送给至少一个用户,服务会返回 "errcode": 0 状态码。

失败响应

如果发生错误(如 token 错误、缺少参数、微信接口调用失败等),服务会返回相应的状态码和错误信息。

种子用户

必须企业性质的公众号吧,个人公众号应该不行吧

OP

具体可以看下 github 上面有贴图步骤 我没有把图片复制过来了

种子用户

@ollama 棒,前两天刚测试一个使用企业微信推送给微信账号的方式,这个看着应该比那个更完美一些。

种子用户

太好了,最近在重构告警推送,正在想微信相关的就看到楼主这个了,我先拿走试用了

种子用户

我之前貌似弄过,有点忘了。
我申请一个测试公众号,让前女友关注那个公众号,然后每天早上定时给她发送当日天气,附带一些小情话哈哈
后面分手了我就暂停了。

有一个缺点,不能定义花里胡哨的,颜色什么的都不行

种子用户

测试了一下,但是没有收到推送消息。

请求参数:

复制
{
    "title": "测试 Push Server",
    "content": "系统通知:您的任务已构建完成。"
}

返回结果:

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

执行的命令:

复制
docker run -d --init --name go-wxpush4 --network ws-net --restart always hezhizheng/go-wxpush:v4 \
-port "5566" \
-title "默认标题" \
-content "默认内容" \
-appid "xxx" \
-secret "xxx" \
-userid "xxx \
-template_id "xxx" \
-tz "Asia/Shanghai"
种子用户

仔细看了一下,收到消息了,但是是以私信的方式收到的。

前排打手
Guardian

不错的项目,star 一下,之前社区还有人问过微信推送相关的,这就来了。
唯一的缺点就是公众号消息模版太单一了,现在还不能自定义

前排打手

不错 这个是合规推送到个人微信的?感觉比推送企业为微信的好多了,今年的 KPI+ 1

种子用户

这个和 server 酱有点类似,不过我现在用的是 iphone,我选择自建的 bark
image

发表一个评论

R保持