AI Agent任务完成,微信推送通知到位?
摘要:凌晨两点,线上数据库磁盘满了。第二天早上打开邮箱才看到告警邮件,已经过去了 6 个小时,用户投诉早就堆满了客服群。 如果当时能立刻收到微信通知,5 分钟就能处理完。 这件事之后我就一直在想——有没有一种推送方式,能做到免费、实时到达、不用装
凌晨两点,线上数据库磁盘满了。第二天早上打开邮箱才看到告警邮件,已经过去了 6 个小时,用户投诉早就堆满了客服群。
如果当时能立刻收到微信通知,5 分钟就能处理完。
这件事之后我就一直在想——有没有一种推送方式,能做到免费、实时到达、不用装额外的 App、锁屏也能弹窗提醒?
答案其实很简单:微信。每个人手机上都有,消息实时到达,锁屏弹窗带声音。更关键的是,微信公众平台提供了测试号,不需要企业资质,个人开发者扫码就能申请,每天 10 万次推送额度,完全免费。
唯一的门槛是微信的模板消息接口用起来比较繁琐。所以我把这些都封装好了,用 C# 写了个开箱即用的推送服务。
CSharp-WXPush
GitHub:https://github.com/hueifeng/CSharp-WXPush
一个 HTTP 请求就能把消息推到你的微信:
curl "http://你的服务器:5566/wxsend?title=磁盘告警&content=数据库服务器磁盘使用率已达95%25"
几秒后,手机上就弹出了微信通知:
点开消息,跳转到自带的详情页,支持 Markdown 渲染:
技术上有什么特点?
项目基于 .NET 9 Minimal API 构建,整个核心逻辑就一个 Program.cs,不到 160 行:
零第三方依赖 —— 只用了 ASP.NET Core 内置组件,没有引入任何 NuGet 包
单文件架构 —— 路由、微信 API 调用、参数解析、模型定义全在一个文件里,风格类似 Go 的 main.go
嵌入式资源 —— 详情页 HTML 通过 EmbeddedResource 编译进 DLL,部署时只需要一个可执行文件
同时支持 GET 和 POST —— GET 方便浏览器和 curl 直接调用,POST 方便对接 Webhook
没有数据库,没有 Redis,没有消息队列。启动就能用。
3 分钟跑起来
第一步:拿到微信测试号的 4 个参数
打开 微信测试号申请页面,微信扫码登录。
登录后你需要拿到 4 样东西:
1) appID 和 appsecret —— 页面最上面就能看到
2) 你的 openid —— 用微信扫描页面上的测试号二维码关注,然后在"用户列表"里找到
3) template_id —— 在"模板消息接口"那里新增一个模板
模板内容这样填:
标题: {{title.DATA}}
内容: {{content.DATA}}
有个坑要注意:模板内容不能只写 {{content.DATA}},前面必须加点文案(比如"内容:"),不然推送出来是空白的。
第二步:一行命令启动
git clone https://github.com/hueifeng/CSharp-WXPush.git
cd CSharp-WXPush
dotnet run -- \
-appid "你的appID" \
-secret "你的appsecret" \
-userid "你的openid" \
-template_id "你的模板ID"
看到这个输出就 OK 了:
Server is running on: http://127.0.0.1:5566
第三步:发一条试试
浏览器直接打开:
http://localhost:5566/wxsend?title=Hello&content=我的第一条推送
或者用 curl:
curl "http://localhost:5566/wxsend?title=Hello&content=我的第一条推送"
返回 {"errcode":0,"errmsg":"ok"} —— 去看微信,消息已经到了。
也支持 POST,方便对接 Webhook:
curl -X POST http://localhost:5566/wxsend \
-H "Content-Type: application/json" \
-d '{"title":"构建通知","content":"main 分支构建成功"}'
实战场景
用了一段时间,基本上能想到的通知需求都能覆盖,分享几个我自己在用的。
AI Agent 任务通知
现在越来越多的工作交给 AI Agent 去跑——代码生成、数据分析、文档整理、批量翻译... 这些任务丢出去之后,你不可能一直盯着等它跑完。
