開源免費(fèi)的微信消息推送服務(wù)、10萬次額度+2MB鏡像,開發(fā)者福音 微信消息推送
作為一名開發(fā)者,你一定遇到過這樣的場景:
? 服務(wù)器半夜報警,需要第一時間通知
? 自動化腳本跑完任務(wù),想知道結(jié)果
? 個人博客有新評論,想及時收到提醒
? NAS、路由器、樹莓派這些設(shè)備需要狀態(tài)監(jiān)控
最直接的方案當(dāng)然是——發(fā)微信。但問題來了:怎么發(fā)?
企業(yè)微信認(rèn)證太麻煩,第三方服務(wù)收費(fèi)不菲,自己寫又要搞懂微信的整套 API、Token 刷新、模板消息規(guī)則……光是看文檔就能勸退不少人。
最近發(fā)現(xiàn)一個開源項(xiàng)目go-wxpush,用 Go 語言寫的,完美解決了這個問題:極簡部署、完全免費(fèi)、每天10萬次額度,而且 Docker 鏡像才 2MB。
![]()
今天就帶你拆解這個工具,5 分鐘上手。
核心特性
先上結(jié)論,這個工具的幾個殺手锏:
特性
對開發(fā)者的價值
完全免費(fèi)
基于微信測試公眾號
個人和小團(tuán)隊(duì)零成本
部署極簡
Docker 鏡像僅 2MB
秒啟動,資源占用極低
超高額度
每天 10 萬次推送
個人項(xiàng)目根本用不完
原生體驗(yàn)
微信原生彈窗+聲音提醒
和普通消息無差別
多用戶支持
可配置多個接收人
團(tuán)隊(duì)協(xié)作友好
自帶詳情頁
消息點(diǎn)擊可查看詳情
適合展示完整日志
三步搞定微信測試賬號
正式部署前,需要先搞定微信這邊的配置。別擔(dān)心,5 分鐘就能搞定。
第一步:申請測試公眾號
打開這個鏈接:mp.weixin.qq.com/debug/cgi-bin/sandbox
掃碼登錄后會看到一個測試號管理界面,這里有兩個關(guān)鍵信息:
- appID:類似 `wx1234567890abcdef` 的字符串
- appsecret:一串加密字符串第二步:獲取你的 UserID
在測試號頁面下方有個"用戶列表"區(qū)域,用你的微信掃描頁面上的二維碼,掃碼后你的微信號就會出現(xiàn)在列表中,格式通常類似oXXXXXX-xxxx。
這個 UserID 就是消息接收者的唯一標(biāo)識。
![]()
第三步:創(chuàng)建消息模板
在測試號頁面的"新增測試模板"處,創(chuàng)建一個模板。關(guān)鍵點(diǎn)來了:
模板內(nèi)容必須按這個格式填寫:
內(nèi)容: {{content.DATA}}注意!不要只填{{content.DATA}},前面必須加個"內(nèi)容:"或者其他文字,否則推送會不顯示內(nèi)容!
創(chuàng)建成功后會得到一個template_id,記下來,后面要用。
![]()
![]()
這樣你就獲得了
appid
secret
userid
template_id
把值復(fù)制出來備用。
部署方式
準(zhǔn)備好上述參數(shù)后,就可以部署服務(wù)了。項(xiàng)目提供了三種方式:
方式一:Docker 一鍵部署(推薦)
這是最推薦的方式,鏡像只有 2MB,秒啟動。
# 重新部署請先拉一遍最新的鏡像
docker pull hezhizheng/go-wxpush:v4
# 參數(shù)格式與終端啟動保持一致, 替換成實(shí)際值即可docker run -it -d -p 5566:5566 --init --name go-wxpush4 hezhizheng/go-wxpush:v4 \
-port "5566" \
-title "測試標(biāo)題5566" \
-content "測試內(nèi)容5566" \
-appid "xxx" \
-secret "xxx" \
-userid "xxx-k08" \
-template_id "xxx-Ks_PwGm--GSzllU" \
-tz "Asia/Shanghai"
星哥實(shí)測:
[root@xxxx ~]# curl http://127.0.0.1:5566/wxsend?title=服務(wù)器通知&content=服務(wù)已于北京時間%2026:00%20重啟
[1] 15196
[root@xxxx ~]# {"errcode":0,"errmsg":"ok"}效果:
![]()
方式二:直接下載編譯好的文件(最簡單)
項(xiàng)目在 Releases 頁面提供了編譯好的可執(zhí)行文件,支持 Windows、macOS、Linux 多平臺。
下載后直接運(yùn)行:
./go-wxpush_windows_amd64.exe -port "5566" \
-title "測試標(biāo)題" \
-content "測試內(nèi)容" \
-appid "你的appID" \
-secret "你的appsecret" \
-userid "你的UserID" \
-template_id "你的template_id" \
-base_url "https://push.hzz.cool"方式三:自行編譯(完全控制)如果你需要自定義或者想學(xué)習(xí)源碼,可以直接編譯:
API 使用:GET 和 POST 都支持# 安裝 gox 工具
go install github.com/mitchellh/gox@latest# 生成各平臺可執(zhí)行文件
gox -osarch="windows/amd64" -ldflags "-s -w"
gox -osarch="linux/amd64" -ldflags "-s -w"
gox -osarch="darwin/amd64" -ldflags "-s -w"
服務(wù)啟動后,默認(rèn)監(jiān)聽5566端口,推送接口非常簡單。
GET 請求(適合快速測試)
http://127.0.0.1:5566/wxsend?title=服務(wù)器通知&content=服務(wù)已于北京時間%2022:00%20重啟參數(shù)說明:
參數(shù)
必填
title
消息標(biāo)題
content
消息內(nèi)容
appid
微信測試號 appID
secret
微信測試號 appsecret
userid
接收者 UserID
template_id
消息模板 ID
base_url
消息詳情頁跳轉(zhuǎn)地址
tz
時區(qū)(默認(rèn)東八區(qū))
POST 請求(適合 Webhook 集成)
更適合自動化場景,比如 GitHub Actions、CI/CD、服務(wù)器監(jiān)控等。
curl --location --request POST 'http://127.0.0.1:5566/wxsend' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "Webhook 通知",
"content": "自動化任務(wù)已完成。",
"appid": "你的appID",
"secret": "你的appsecret",
"userid": "你的UserID",
"template_id": "你的template_id"
}'響應(yīng)結(jié)果成功時返回:
{
"errcode": 0,
"errmsg": "ok"
}失敗時會返回對應(yīng)的錯誤碼和錯誤信息。
實(shí)戰(zhàn)場景
理論說完了,來點(diǎn)實(shí)際應(yīng)用場景:
場景一:服務(wù)器監(jiān)控報警
寫個簡單的監(jiān)控腳本,CPU 超過 80% 時觸發(fā)推送:
場景二:CI/CD 通知#!/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=??服務(wù)器報警&content=CPU使用率:${CPU_USAGE}%"
fi
在 GitHub Actions 中添加推送步驟,構(gòu)建完成自動通知:
- name: 發(fā)送微信通知
run: |
curl -X POST http://your-server:5566/wxsend \
-H "Content-Type: application/json" \
-d '{
"title": "? 構(gòu)建成功",
"content": "項(xiàng)目 ${{ github.repository }} 分支 ${{ github.ref }} 構(gòu)建完成"
}'場景三:自動化腳本結(jié)果每天定時跑的數(shù)據(jù)分析腳本,跑完推送結(jié)果:
友情提醒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(" 數(shù)據(jù)分析完成", "今日新增用戶: 123, 活躍用戶: 456")
1.測試號限制:使用的是微信測試公眾號,掃描人數(shù)限制在 100 人,但個人和小團(tuán)隊(duì)完全夠用
2.模板格式:再次強(qiáng)調(diào),模板內(nèi)容一定要加前綴,比如"內(nèi)容: {{content.DATA}}"
3.不要濫用公共服務(wù):雖然作者提供了免費(fèi)服務(wù),但建議自行部署,避免給別人帶來壓力
4.時區(qū)問題:默認(rèn)使用東八區(qū),如果需要其他時區(qū),可以通過
tz參數(shù)設(shè)置
寫文不易,如果你都看到了這里,請點(diǎn)個贊和在看,分享給更多的朋友;也別忘了關(guān)注星哥玩云!這里有滿滿的干貨分享,還有輕松有趣的技術(shù)交流~點(diǎn)個贊、分享給身邊的小伙伴,一起成長,一起玩轉(zhuǎn)技術(shù)世界吧!
go-wxpush這個項(xiàng)目雖然小,但解決了開發(fā)者的真實(shí)痛點(diǎn):簡單、免費(fèi)、可靠。
如果你正在為微信消息推送發(fā)愁,不妨試試這個方案。5 分鐘就能搭建起來,從此告別監(jiān)控盲區(qū)。
項(xiàng)目地址:https://github.com/hezhizheng/go-wxpush
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.