5分钟搭好Wecom酱企业微信消息推送:从创建应用到第一条消息上线
【免费下载链接】wecomchan微信推送服务Server酱的开源替代。通过企业微信向微信推送消息的配置文档、直推函数和可自行搭建的在线服务代码。项目地址: https://gitcode.com/gh_mirrors/we/wecomchan
服务器半夜挂了,告警躺在日志文件里,而你正在刷手机——这就是很多运维同学的日常。Wecom酱 是一个开源的企业微信消息推送方案:把服务器上的事件通过企业微信接口转发到个人微信,全程不需要买服务器、不需要装客户端,用云函数就能部署。本文以百度智能云 CFC 为例,带你走完"企业微信建应用 → 云函数部署 → 发出一条推送"的完整链路。
一、什么场景值得把消息推到微信
监控脚本发现磁盘满了、CI 流水线跑失败了、定时任务今晚没跑成功——这些事件有一个共同点:发生时没人盯着终端,但你永远带着一台手机。把这类事件推送到微信,意味着异常在几秒内变成你屏幕上的一条通知,而不是第二天早上翻日志才想起来。
Wecom酱 的定位介于"商业推送服务"和"自己写接口"之间:它不依赖任何第三方在线服务,代码全部开源在你自己手里,部署在自己的云账号里;同时它也提供现成的云函数模板,你只要填参数,不用从零调企业微信 API。适合自建监控告警、程序异常通知、定时提醒这类低频但重要的场景。
二、企业微信后台:拿齐 AgentId、Secret 和企业ID 三个参数
部署代码之前,先在企业微信管理后台把"凭证"备齐。你需要拿到三个东西,各自用途不同:
- AgentId(应用ID):标识你要把消息发到哪个应用上,发消息的接口调用里必须带上;
- Secret(应用密钥):和 AgentId 配套,用来换取调用接口的 access_token,相当于这个应用的密码;
- CorpID(企业ID):标识你注册的企业,是换取 token 的另一个必填项。
另外,你还要自己定一个推送密码(sendkey)。它由你自己设一个字符串,写进云函数配置里;以后每次请求推送接口都要带上它,用来确认"这个请求确实是你发的",防止接口被别人当广播站用。
在管理后台创建应用并取回三个参数
- 用电脑打开企业微信官网,注册一个企业(个人微信账号就能注册),注册完成后点「管理企业」进入管理后台。
- 在左侧菜单点「应用管理」→「自建」→「创建应用」,填一个名字(如"消息推送")并上传图标,点确定,应用创建完成。
- 进入刚创建的应用详情页,把页面上的AgentId和Secret抄下来备用;注意 Secret 在部分版本里只能在企业微信客户端里查看,别只在网页上找。
- 回到「我的企业」页面拉到最底部,复制企业ID(CorpID)。三个参数到此集齐。
配置企业可信IP并绑定微信插件
- 在应用详情页最下方的开发者接口区域,找到「企业可信IP」点「配置」。2022年6月20日之后创建的应用必须配这一步:把云函数的固定公网IP填进去(在函数设置里打开"固定公网IP"才能获得),否则调用接口会报 IP 不合法。
- 进入「我的企业」→「微信插件」,用个人微信扫码关注。此后企业微信应用发出的消息会同步推到你的个人微信,这一步不扫,消息只会停在企业微信客户端里。
图:企业微信管理后台「应用管理」入口,红框标出了创建应用后的应用详情页,AgentId 和 Secret 就在该页展示
三、部署方案怎么选:云函数还是自建服务
仓库里按部署目标分了几个目录,先对号入座再动手:
- python-baiduCFC/:百度智能云函数,文档带全套截图,本文主推这条路;
- python-aliyunfc/:阿里云函数,适合手里已有阿里云账号的人,流程和百度版基本一致;
- python-huaweiFG/:华为云函数工作流的 Python 版;
- go-scf/:腾讯云 SCF 的 Go 版(2022年5月起最低月消费 9.9 元,作者已不再推荐);
- index.php / go-wecomchan/:PHP 和 Go 的自建服务版,适合你有自己的服务器和域名的情况。
百度智能云 CFC 部署四步走
先拿到代码:
git clone https://gitcode.com/gh_mirrors/we/wecomchan- 登录百度智能云控制台,进入「函数计算CFC」→「服务管理」,点「创建服务」,服务名称随意(如 WecomPush),点确定,服务创建成功。
- 进入该服务的「函数列表」,点「创建函数」,运行环境选 Python 3,内存保持默认 128MB,其余默认,创建完成后函数出现在列表中。
- 进入函数「代码编辑页」,选「上传函数.ZIP包」,上传仓库里的
python-baiduCFC/baidu-code.zip,上传成功后页面上出现在线代码编辑器。 - 在编辑器里打开
index.py,把标注了"修改"的四个变量改成你的参数,格式参考:
WECOM_ID = "此处填写企业IDCorpID" wecom_agentid = "此处填写应用AgentId" wecom_secret = "此处填写应用Secret" send_key = "此处填写你自己定的推送密码sendkey"改完点「保存」,函数部署生效。 5. 打开该函数的「触发器」页,确认存在一个 HTTP 触发器,记下它的公网访问地址——之后发消息就靠它。同时确认函数已开启固定公网IP(第二节的可信IP要用到这个值)。
图:百度智能云 CFC 创建函数界面,红框标出了运行环境 Python 3 和内存规格 128MB 两个选项
图:百度智能云 CFC 触发器配置页,红框标出了 HTTP 触发器的列表和默认公网访问地址
图:百度智能云 CFC 在线代码编辑器,红框标出了 index.py 中需要替换为真实参数的变量位置
四、发送第一条 Wecom酱 推送消息并验证结果
这一步验证整条链路是否打通:你的请求 → 云函数 → 企业微信接口 → 你的微信。用 curl 向刚才记下的公网访问地址发一条 POST 请求,请求体是两段式 JSON:key放你的 sendkey,msg放消息正文:
{"key": "此处填写你的sendkey", "msg": "Wecom酱部署成功测试"}返回 JSON 中errcode为 0,说明企业微信接口已经收下这条消息;几秒后看手机,微信里应该就出现了这条文本。
三个最常见的失败原因
- 响应里报 invalid send key(403):请求里的
key和函数配置里的 sendkey 不一致,逐字符核对一次,包括多余空格。 - 响应里报 IP 相关错误:企业微信侧没配可信IP,或函数没有固定公网IP,回到第二节补配后重试。
- 企业微信能收到、个人微信收不到:检查「微信插件」是否已扫码关注,并在插件设置里勾选"允许成员在微信插件中接收和回复聊天消息";同时确认企业微信客户端设置里没开"仅在企业微信中接收消息"。
五、进阶用法与延伸阅读
跑通文本之后,还有几件事值得看:
- 换消息类型:请求体加
"type": "markdown"可以发 Markdown,"type": "image"或"type": "file"配合 Base64 内容发图片和文件,字段说明见 python-baiduCFC/README.md。 - 一套函数接多个应用:函数按 URL 路径区分应用,每个应用配一个独立的 AgentId/Secret 和触发器路径,改法在 python-huaweiFG/main.py 里注释得很清楚。
- 换成别的语言:仓库提供 PHP、Go、TypeScript、.NET 的推送函数示例,逻辑都是"换 token → 调发消息接口"两步,可以直接抄进自己的项目。
更多配置细节和全部版本说明,见项目文档 README.md 与 ONLINE.md。把 sendkey 设成一个高强度随机串、可信IP保持收紧,这套 Wecom酱 推送链路就可以长期挂在你的监控脚本和告警任务里用了。
【免费下载链接】wecomchan微信推送服务Server酱的开源替代。通过企业微信向微信推送消息的配置文档、直推函数和可自行搭建的在线服务代码。项目地址: https://gitcode.com/gh_mirrors/we/wecomchan
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考