运维123 - 微信推送
type: channel
link: https://www.sddts.cn/index.php/tag/%E5%BE%AE%E4%BF%A1%E6%8E%A8%E9%80%81/
items: go-wxpush 开源微信推送服务技术分析

go-wxpush 开源微信推送服务技术分析
type: item
date: 2026-01-22T22:27:14+00:00
description: go-wxpush 开源微信推送服务技术分析一、概述1. 项目简介go-wxpush 是一款基于 Golang 开发的开源微信模板消息推送服务，具有极轻量、易部署、免费额度充足等特点。该项目为开发者和运维人员提供了一种简单高效的消息通知解决方案。2. 核心特性A. 超轻量架构Docker 镜像仅 2MB，占用资源极少，支持一键部署B. 免费额度充足每天提供 10 万次推送额度，满足个人和小团队需求C. 原生体验微信原生弹窗加声音提醒，消息不遗漏D. 灵活部署支持 Docker、直接下载编译文件、自行编译三种部署方式3. 技术栈开发语言：Golang容器化：Docker跨平台支持：Windows、macOS、Linux二、系统架构1. 工作原理graph LR A[用户/API] -->|HTTP请求| B[go-wxpush服务] B -->|模板消息| C[微信公众平台] C -->|推送| D[微信客户端] E[监控脚本] -->|Webhook| B F[自动化任务] -->|API调用| B2. 核心组件A. HTTP 服务监听指定端口（默认 5566），接收 GET 和 POST 请求B. 消息封装将请求参数封装为微信模板消息格式C. 微信 API 调用调用微信测试号接口完成消息推送D. 多用户支持支持配置多个接收用户，实现群发功能三、部署方式1. 准备工作A. 获取微信测试号参数登录微信公众平台接口测试账号获取 appID 和 appsecret扫码关注测试号，获取 userid新增测试模板，获取 template_idB. 模板格式要求模板内容格式：内容: {{content.DATA}}2. Docker 部署（推荐）A. 拉取镜像docker pull hezhizheng/go-wxpush:v4B. 启动容器docker run -it -d -p 5566:5566 --init --name go-wxpush4 hezhizheng/go-wxpush:v4 \ -port "5566" \ -title "测试标题" \ -content "测试内容" \ -appid "你的appid" \ -secret "你的secret" \ -userid "你的userid" \ -template_id "你的模板ID" \ -tz "Asia/Shanghai"参数说明：-port：服务监听端口-title：消息标题-content：消息内容-appid：微信测试号 appID-secret：微信测试号 appsecret-userid：接收用户微信号-template_id：模板 ID-tz：时区设置3. 直接部署A. 下载编译文件根据系统类型下载对应平台的可执行文件B. 启动服务./go-wxpush_windows_amd64.exe -port "5566" \ -title "测试标题" \ -content "测试内容" \ -appid "你的appid" \ -secret "你的secret" \ -userid "你的userid" \ -template_id "你的模板ID" \ -base_url "https://push.hzz.cool"4. 自行编译A. 编译命令gox -osarch="windows/amd64" -ldflags "-s -w" \ -gcflags="all=-trimpath=${PWD}" \ -asmflags="all=-trimpath=${PWD}"B. 编译参数说明-osarch：目标平台架构-ldflags "-s -w"：去除调试信息，减小文件体积-gcflags/ -asmflags：去除路径信息四、API 接口1. GET 请求方式A. 接口地址GET http://127.0.0.1:5566/wxsendB. 请求参数参数类型必填说明appidstring是微信测试号 appIDsecretstring是微信测试号 appsecretuseridstring是接收用户微信号template_idstring是模板 IDcontentstring是消息内容C. 请求示例http://127.0.0.1:5566/wxsend?appid=你的appid&secret=你的secret&userid=你的userid&template_id=你的模板ID&content=保持微笑，代码无bug！2. POST 请求方式A. 接口地址POST http://127.0.0.1:5566/wxsendB. 请求头Content-Type: application/jsonC. 请求体{ "title": "Webhook通…