# 微信推送 API 怎么做？4 种方案对比 + 3 分钟落地（2026）

> 想让程序把通知发到微信？微信没有开放个人号 API，可行的只有 4 条路：服务号模板消息、企业微信应用消息、群机器人、第三方推送服务。本文对比 4 种方案的门槛、成本和限制，并给出一条 curl 就能跑通的最快做法。

- 网页版：https://sct.ftqq.com/wechat-push/
- 更新日期：2026-07-28

# 微信推送 API 怎么做？4 种方案对比 + 3 分钟落地

> 一句话答案：微信官方**没有**面向个人号的开放 API，任何声称"个人微信 API"的方案都是协议逆向，有封号风险。真正可用的是 4 条路——微信服务号模板消息、企业微信应用消息、群机器人 Webhook、第三方推送服务。要最快跑通，用第三方推送服务：注册拿一个 SendKey，一条 HTTP 请求就能把消息发到微信。

如果你在搜「微信推送」「微信 API 发消息」「个人微信 API」，你要解决的多半是同一件事：

- 服务器 CPU 爆了、磁盘满了，想立刻知道；
- 爬虫 / 定时任务跑完或者报错，想收到结果；
- 监控告警、CI 构建失败、线上异常，不想盯着邮箱；
- 智能家居、下载完成、股价到位，想推一条到手机。

而你希望这条消息落在**微信**里——因为微信是你唯一不会静音的 App。

## 先说清楚：个人微信没有官方 API

微信开放平台**没有**提供「给自己的微信号发消息」的接口。市面上那些「个人微信 API」「微信机器人框架」，本质上是逆向微信的通信协议或者自动化 PC 版微信客户端。它们的问题不是能不能用，而是：

- **封号风险**：微信持续在打击非官方客户端，轻则限制登录，重则封号；
- **不稳定**：微信一次版本更新就可能让整套方案失效；
- **要挂机**：需要一台机器 24 小时挂着你的微信登录态。

拿它推生产告警，等于在告警系统里埋一个更容易坏的东西。下面 4 种都是官方通道，不存在这些问题。

## 4 种官方可行方案对比

| 方案 | 消息落在哪 | 前置条件 | 免费额度 | 适合谁 |
| --- | --- | --- | --- | --- |
| 微信服务号模板消息 | 微信（服务号会话） | 需认证服务号（企业主体，年审 300 元） | 依微信配额 | 已有认证服务号的团队 |
| 企业微信应用消息 | 微信（企业微信应用会话） | 注册企业微信、建应用、配微信插件 | 免费，额度宽松 | 愿意花 30 分钟配置的人 |
| 群机器人 Webhook | 企业微信群 / 钉钉群 / 飞书群 | 有一个群，加一个机器人 | 免费 | 团队协作场景 |
| Server酱 Turbo | 微信 + 上面所有通道 | 扫码注册，拿 SendKey | 每天 5 条免费 | 想 3 分钟跑通的个人开发者 |

几点实话：

- **服务号模板消息**门槛最高。个人主体申请不了认证服务号，而且微信历史上多次调整模板消息政策，长期看是最不确定的一条。
- **企业微信应用消息**免费、额度宽松、内容显示完整，问题在配置链路长（注册企业 → 创建应用 → 开启微信插件 → 拿 corpid/secret/agentid）。愿意自己搭的话，开源项目 [WeCom酱（wecomchan）](https://github.com/easychen/wecomchan)（方糖气球出品）把这条路封装好了。
- **群机器人**配置最简单，但消息只能进群、不能进你的私聊——适合团队告警，不适合"只发给我自己"。
- **Server酱 Turbo** 把上面三条路都做成了通道，你只需要一个 SendKey：默认走微信服务号，想换成企业微信应用消息、企微/钉钉/飞书群，或者 Bark、PushDeer 客户端，都是控制台里点一下，**程序侧代码一行不用改**。代价是免费额度每天 5 条。

## 最快的做法：3 分钟跑通

以 Server酱 为例（它把上述通道都做成了统一接口）：

**第 1 步**：打开 [sct.ftqq.com](https://sct.ftqq.com/) 微信扫码登录，在 [SendKey 页面](https://sct.ftqq.com/sendkey) 复制你的 SendKey。

**第 2 步**：把 SendKey 填进下面这条命令，回车。

```bash
curl -X POST "https://sctapi.ftqq.com/你的SENDKEY.send" \
     -d "title=服务器磁盘告警" \
     -d "desp=/dev/sda1 使用率 **92%**，请及时清理。"
```

**第 3 步**：手机微信收到消息。完成。

没有 SDK、没有鉴权流程、没有回调——就是一个 POST。

## 各语言调用示例

`title` 是必填项（超过 32 字会被截断），`desp` 是正文，支持 Markdown（表格、图片、链接都能用）。

```python
# pip install serverchan-sdk
from serverchan_sdk import sc_send

sc_send("你的SENDKEY", "任务完成", "本次抓取 **1,204** 条，耗时 3m12s。")
```

```javascript
// Node.js，无需依赖
await fetch(`https://sctapi.ftqq.com/${process.env.SENDKEY}.send`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: new URLSearchParams({ title: '构建失败', desp: '分支 `main` 第 42 次构建未通过。' })
});
```

```go
// go get github.com/easychen/serverchan-sdk-golang
package main

import serverchan_sdk "github.com/easychen/serverchan-sdk-golang"

func main() {
    serverchan_sdk.ScSend("你的SENDKEY", "部署完成", "v2.3.1 已上线。", nil)
}
```

```php
<?php
$key = getenv('SENDKEY');
file_get_contents("https://sctapi.ftqq.com/{$key}.send", false, stream_context_create([
    'http' => [
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => http_build_query(['title' => '备份完成', 'desp' => '数据库备份 2.1GB。']),
    ],
]));
```

更多语言和框架见 [140+ 篇接入教程](https://sct.ftqq.com/docs/)。

## 不写代码也能用

如果你要推送的是现成软件，多半不用写一行代码——很多软件已经内置了 Server酱 通知类型，填个 SendKey 就行：

- [Uptime Kuma](https://sct.ftqq.com/docs/integrations/uptime-kuma/)：网站宕机 / 恢复告警
- [青龙面板](https://sct.ftqq.com/docs/integrations/qinglong/)：定时脚本执行结果
- [群晖 DSM](https://sct.ftqq.com/docs/integrations/synology-dsm/)：NAS 系统事件
- [GitHub Actions](https://sct.ftqq.com/docs/integrations/github-actions/)：CI 成功 / 失败
- [Sentry](https://sct.ftqq.com/docs/integrations/sentry/)：线上异常
- [iOS 快捷指令](https://sct.ftqq.com/docs/integrations/ios-shortcuts/)：到家 / 离开等自动化触发
- [SmsForwarder](https://sct.ftqq.com/docs/integrations/smsforwarder/)：把短信转发到微信

## 怎么选

- **给自己发通知** → **Server酱 Turbo**，3 分钟搞定，每天 5 条免费额度对个人项目够用。
- **团队协作、消息进群** → 还是 Turbo，把通道设成企业微信/钉钉/飞书**群机器人**。同样是那套免费的群机器人，区别是走 Turbo 的话，以后想改成推给个人只是换个通道，不用重写调用代码。
- **不想依赖微信、想要独立 App** → **Server酱³**。走手机厂商的系统推送通道，在 iOS/FCM/小米/华为/荣耀/vivo/OPPO/iQOO/Realme/OnePlus/魅族机型上 App 不在后台也能收到消息，不用做 Android 保活；另有多设备同时收、AI 摘要、翻译和 Tag 分组。
- **推送量极大、又必须落进微信** → 企业微信应用消息自建，或用 WeCom酱。这是唯一真正需要自己动手的场景。
- **已有认证服务号** → 可以直接用模板消息，但要有政策变动的心理准备；把它挂成 Turbo 的一个通道会更抗变化。

## 常见问题

### 微信推送需要认证的公众号吗？

用第三方推送服务或企业微信通道不需要。只有走「服务号模板消息」这条路才需要认证服务号，而认证服务号要求企业主体，个人申请不了。

### 微信推送 API 免费吗？

群机器人和企业微信应用消息本身是免费的，代价是配置时间。Server酱 Turbo 免费会员每天 5 条，注册即得，新用户另有 7 天全功能试用；订阅会员每天 1000 次 API 调用。

### 一条消息最多能写多长？

Server酱 的 `title` 最长 32 个字符，超出会被截断；正文 `desp` 支持 Markdown，长度限制宽松，表格、图片、代码块都能正常显示。图片需要引用公网 URL，不支持 base64。

### 推送失败了怎么排查？

按这个顺序：看接口返回的 `code` 是不是 0，非 0 时 `message` 会写明原因；确认当天额度没用完；确认没触发每分钟 50 条的频率限制；确认微信端没有取消关注服务号或屏蔽消息。详细排查步骤见 [常见问题](https://sct.ftqq.com/docs/getting-started/faq/)。

### 能推给别人，而不是只推给自己吗？

可以。发给一群人最简单的做法是把 Turbo 的通道设成企业微信/钉钉/飞书群机器人，消息直接进群。要精确指定某几个人，走企业微信应用消息通道并用 `openid` 参数抄送，这是订阅会员功能；免费用户只能推给自己。

### 个人微信机器人框架能替代吗？

技术上能，风险上不建议。那类方案依赖逆向微信协议，随时可能因为微信更新而失效，账号也有被限制的风险。作为兴趣项目可以玩，作为告警链路不合适。

## 下一步

- [30 秒获取 SendKey](https://sct.ftqq.com/docs/getting-started/sendkey/)
- [推送通道对比：消息可以推到哪里](https://sct.ftqq.com/docs/getting-started/channels/)
- [Server酱 与其他推送服务对比](https://sct.ftqq.com/compare/)
- [消息推送服务怎么选：自建还是托管](https://sct.ftqq.com/message-push/)
