企业微信推送消息到微信免费方案:Wecom酱搭建与使用全攻略
企业微信推送消息到微信免费方案:Wecom酱搭建与使用全攻略
【免费下载链接】wecomchan微信推送服务Server酱的开源替代。通过企业微信向微信推送消息的配置文档、直推函数和可自行搭建的在线服务代码。项目地址: https://gitcode.com/gh_mirrors/we/wecomchan
你是不是也遇到过这样的场景:服务器报警只能发邮件、监控通知要装一堆 App、想给自己微信发条定时提醒却找不到趁手工具?Wecom酱(wecomchan)就是为这类需求而生的开源项目——它通过企业微信向微信推送消息,一次配置即可长期使用,无需安装企业微信客户端,而且完全开源免费,是微信推送服务 Server酱 的开源替代方案。
为什么你需要一条"企业微信到微信"的免费推送通道
传统通知方式各有各的别扭:
- 邮件通知:时效性差,容易被丢进垃圾箱
- 短信推送:按条收费,成本居高不下
- 专用 App:装机成本高,只为收个通知不值当
而企业微信有一个隐藏能力:应用消息可以同步到个人微信。Wecom酱 恰好把这套官方接口封装成了人人可用的推送函数,让你用最少的成本把消息送到自己(或团队成员)的微信上。
它的核心价值只有一句话:配置一次,长期使用;只要微信在手,通知随时收。
一条推送的完整链路:消息是怎么"穿越"到微信的
整个推送过程只有三步,逻辑并不复杂:
- 你的脚本携带企业 ID、应用 ID、应用 Secret,向企业微信接口换取
access_token - 用
access_token调用消息发送接口,把内容投递给企业应用 - 企业微信将消息转发到绑定过的个人微信(通过"微信插件"关注实现)
Wecom酱 做的就是把这套 OpenAPI 流程打包成几十行的直推函数,你只需要填三个参数即可。
五套推送函数任选:PHP、Python、Go、TypeScript、.NET Core 全覆盖
项目不绑定任何技术栈,官方仓库直接给出了多语言实现,选择障碍者福音:
| 语言 | 特点 | 参考位置 |
|---|---|---|
| PHP | 含 Redis 缓存 token 的在线服务完整示例 | index.php |
| Python | 文本/图片/Markdown 三类函数齐全 | 各云函数目录 |
| Go | 支持 Docker 容器化与多架构镜像 | go-wecomchan/ |
| TypeScript | 异步实现,适合 Node 生态 | README 内附代码 |
| .NET Core | 基于 RestSharp,适合 .NET 团队 | dotNetCore.cs |
所有函数的参数设计高度统一:文本内容、企业ID、应用ID、应用Secret,换语言几乎零学习成本。
十分钟上手:企业微信推送消息的六步配置流程
在写任何代码之前,先完成企业微信侧的准备工作。整个过程在电脑浏览器里操作即可。
第一步:注册一个企业打开企业微信官网注册账号即可,个人用途用微信就能注册,无需认证。
第二步:创建自建应用进入「管理企业」→「应用管理」→「自建」→「创建应用」,填写应用名称、上传 logo、选择可见范围。创建后进入应用详情页,记下应用 ID(agentid)和应用 Secret(secret)。
注意:
secret推送到手机端时只能在「企业微信客户端」中查看。
第三步:配置可信 IP2022 年 6 月 20 日之后创建的应用,需要在应用详情页最下方的「开发者接口」中配置「企业可信IP」。如果你用云函数这类共享 IP 服务,记得先开启「固定公网IP」,否则可能报"第三方服务IP"错误。
第四步:获取企业 ID进入「我的企业」页面,拉到最底部即可看到企业 ID(corpid),复制备用。推送目标默认填@all,即发给企业全员。
第五步:绑定微信插件进入「我的企业」→「微信插件」,扫描二维码关注。这是消息能否到达个人微信的关键一步。
第六步:发送测试消息完成上述配置后,调用下方任意语言的函数即可完成企业微信推送消息测试。
第一行代码:四种语言发送你的第一条推送
PHP 版
function send_to_wecom($text, $wecom_cid, $wecom_aid, $wecom_secret, $wecom_touid = '@all') { $info = @json_decode(file_get_contents("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=".urlencode($wecom_cid)."&corpsecret=".urlencode($wecom_secret)), true); if ($info && isset($info['access_token']) && strlen($info['access_token']) > 0) { $access_token = $info['access_token']; $url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='.urlencode($access_token); $data = new \stdClass(); $data->touser = $wecom_touid; $data->agentid = $wecom_aid; $data->msgtype = "text"; $data->text = ["content"=> $text]; $data->duplicate_check_interval = 600; // ... 省略 curl 发送部分 } return false; }Python 版(同时支持文本、图片、Markdown)
ret = send_to_wecom("推送测试\r\n测试换行", "企业ID", "应用ID", "应用secret") print(ret) ret = send_to_wecom('<a href="https://www.example.com/">文本中支持超链接</a>', "企业ID", "应用ID", "应用secret") ret = send_to_wecom_image("此处填写图片Base64", "企业ID", "应用ID", "应用secret") ret = send_to_wecom_markdown("**Markdown 内容**", "企业ID", "应用ID", "应用secret")Go / Docker 部署版:推荐直接用现成镜像,不依赖 Golang 环境。
docker run -dit -e SENDKEY=set_a_sendkey \ -e WECOM_CID=企业微信公司ID \ -e WECOM_SECRET=企业微信应用Secret \ -e WECOM_AID=企业微信应用ID \ -e WECOM_TOUID="@all" \ -p 8080:8080 go-wecomchan部署完成后通过 URL 调用:http://localhost:8080/wecomchan?sendkey=你的sendkey&msg=你的消息&msg_type=text
从函数到服务:把推送能力封装成 HTTP 接口
直推函数适合低频调用,但如果要对接监控系统、定时任务,更推荐搭一个在线服务。项目根目录的index.php就是一个开箱即用的服务端示例,具备两个关键设计:
- sendkey 鉴权:请求必须携带你预设的密钥,避免接口被陌生人滥用
- Redis 缓存 token:可选开启,减少重复换取 access_token,降低调用成本
访问方式同样简单:http://你的域名/?sendkey=你设定的sendkey&text=要发送的内容
云服务器与容器:两种主流部署路线怎么选
| 部署方式 | 适用人群 | 成本 | 复杂度 |
|---|---|---|---|
| PHP 版在线服务 | 已有 Web 服务器 | 约等于零 | 低,改配置传文件即可 |
| Go 版容器镜像 | 熟悉 Docker 的团队 | 服务器费用 | 中,支持 docker-compose 一键起 |
| 云函数版 | 想省事、免运维 | 极低/免费额度 | 低,传 zip 改变量 |
Go 版环境变量一览(不启用 Redis 可省略最后三项):
| 变量 | 说明 |
|---|---|
| SENDKEY | 调用接口时校验的密钥 |
| WECOM_CID | 企业微信公司 ID |
| WECOM_SECRET | 企业微信应用 Secret |
| WECOM_AID | 企业微信应用 ID |
| WECOM_TOUID | 默认推送对象,填@all |
| REDIS_STAT | 是否用 Redis 缓存 token,ON/OFF |
| REDIS_ADDR / REDIS_PASSWORD | Redis 地址与密码 |
云函数部署实战:阿里云四步截图带你看完
不想买服务器?云函数按调用计费、几乎免费,是最省心的路线。以下以阿里云函数计算为例(完整步骤见python-aliyunfc/目录)。
第一步:创建服务进入函数计算控制台,点击「创建服务」,服务名称随意。
第二步:填写服务信息按提示填写名称与描述后提交。
第三步:创建函数运行环境选 Python3,内存规格 128MB,触发方式选 HTTP 请求。
第四步:上传代码并修改变量选择「上传 zip 包」(使用仓库内main-code.zip),用网页编辑器把index.py中的 sendkey、企业 ID、Secret、应用 ID 替换为你的配置,点击部署即可。
调用方式:向函数公网地址 POST 一段 JSON:
{"key":"123", "msg": "Hello, World!"} {"key":"123", "type": "markdown", "msg": "**Markdown Here!**"}更多云平台:百度、华为、腾讯怎么选
- 百度智能云 CFC:流程与阿里云基本一致(参考
python-baiduCFC/),额外支持uid字段定向推送指定成员,格式如zhangsan|lisi|wangwu - 华为云函数工作流:Python 3.9 环境,把
python-huaweiFG/main.py的内容粘贴到 index.py 中,配置 APIG 触发器即可,目前主要通过 URL 参数传值 - 腾讯云 SCF:Go 编译版单文件上传,通过 6 个环境变量配置(见
go-scf/)。需要提醒的是,腾讯云函数自 2022 年 5 月 23 日起取消免费额度,最低 9.9 元/月,官方已不推荐
三个能立刻落地的典型使用场景
场景一:服务器与爬虫监控告警把推送接口接到监控脚本里,磁盘告警、服务宕机、爬虫异常都能第一时间弹到微信,比盯邮件高效得多。
场景二:团队协作消息同步构建流水线跑完、工单有新进展、值班安排有变动……用一条脚本向全员@all推送,信息同步零延迟。
场景三:个人生活提醒服务待办事项、生日提醒、天气预报,配合云函数的定时触发器,等于白嫖一个免安装 App 的"私人助理"。
排雷清单:新手最容易踩的五个坑
- 微信收不到消息:检查「微信插件」页是否勾选"允许成员在微信插件中接收和回复聊天消息",并在企业微信客户端「设置→新消息通知」中关闭"仅在企业微信中接收消息"
- 报"第三方服务IP"错误:云函数场景务必开启固定公网 IP,并把该 IP 加入企业可信 IP 列表
- secret 找不到:应用 Secret 只能在企业微信客户端中查看
- GET 传长消息报错:消息体过长时改用 POST + JSON 请求(Go 2.1 起支持)
- 重复收到相同消息:请求中已内置
duplicate_check_interval = 600去重间隔,无需重复发明轮子
让推送更稳更省:性能与安全建议
- 合理缓存 access_token:token 有效期约两小时,低频个人使用直取即可;高并发场景建议启用 Redis 缓存,仓库内 PHP/Go 两个版本都提供了示例
- 固定 sendkey 并保管好:它是你接口的唯一门禁,泄露等于别人能替你发消息
- 按需定向推送:发给全员用
@all,定向通知用to_user/uid指定成员,避免打扰 - 优先选择低维护平台:个人用途推荐云函数,量大再考虑容器化部署
写在最后:把微信变成你的统一通知中心
回到最初的问题——企业微信推送消息这件事,Wecom酱 给出了近乎完美的答案:开源免费、多语言覆盖、主流云平台适配、还有现成的在线服务代码。无论是做系统监控、团队通知还是个人提醒,clone 一份仓库到本地(git clone https://gitcode.com/gh_mirrors/we/wecomchan),按本文的六步配置完成企业微信推送消息的准备工作,再挑一段代码粘贴运行,你的第一条微信推送很快就能弹出在手机屏幕上。
【免费下载链接】wecomchan微信推送服务Server酱的开源替代。通过企业微信向微信推送消息的配置文档、直推函数和可自行搭建的在线服务代码。项目地址: https://gitcode.com/gh_mirrors/we/wecomchan
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
