# Vercel接入 Server酱：项目部署成功或失败时推送到微信（2026 教程）

> 通过 Vercel Deploy webhook 将部署状态推送到微信，支持 URL 直连或 Cloudflare Workers 中转，配置简单复制即用。

- 网页版：https://sct.ftqq.com/docs/integrations/vercel/
- 更新日期：2026-07-17

# Vercel + Server酱：项目部署成功或失败时推送到微信

> 效果：Vercel 项目每次部署完成时，自动收到微信通知，包含部署状态等信息。

## 前置条件

- Server酱 SendKey：登录 sct.ftqq.com，在「SendKey」页面复制（[30 秒获取教程](https://sct.ftqq.com/docs/getting-started/sendkey/)）。
- Vercel 项目已创建，可访问项目或团队的 Settings。
- 如需将部署详情送进消息正文，准备一个 Cloudflare Workers 或云函数作为中转。
- 如需推送到企业微信、钉钉或飞书群，参见[通道配置](https://sct.ftqq.com/docs/getting-started/channels/)。

## 配置步骤

### 方式一：URL 直连（固定文案）

在 Vercel 项目的 Settings 中找到 Deploy webhook 配置项（具体入口以应用内实际显示为准），URL 填入：

```
https://sctapi.ftqq.com/你的SENDKEY.send?title=Vercel%E9%83%A8%E7%BD%B2
```

`Vercel%E9%83%A8%E7%BD%B2` 是「Vercel部署」的 URL 编码。每次部署触发 webhook 时，你会收到标题为「Vercel部署」的微信消息。此方式不解析 Vercel 推送的 JSON，仅推送固定标题。

### 方式二：中转解析（含部署详情）

若要把 Vercel 推送的 JSON 内容送进消息正文，需要一层中转：Vercel → Cloudflare Workers → Server酱。

**1. 创建 Cloudflare Worker，粘贴以下代码：**

````javascript
export default {
  async fetch(request, env) {
    try {
      const body = await request.json();
      const desp = "```json\n" + JSON.stringify(body, null, 2) + "\n```";
      const resp = await fetch("https://sctapi.ftqq.com/" + env.SERVERCHAN_SENDKEY + ".send", {
        method: "POST",
        headers: { "Content-Type": "application/x-www-form-urlencoded" },
        body: "title=" + encodeURIComponent("Vercel部署通知") + "&desp=" + encodeURIComponent(desp)
      });
      const result = await resp.json();
      return new Response(JSON.stringify(result), {
        headers: { "Content-Type": "application/json" }
      });
    } catch (e) {
      return new Response("error: " + e.message, { status: 500 });
    }
  }
}
````

**2. 在 Worker 的环境变量中添加 `SERVERCHAN_SENDKEY`，值为你的 SendKey。**

**3. 在 Vercel 项目的 Deploy webhook 设置中（具体入口以应用内实际显示为准），URL 填入 Worker 的域名地址。**

部署该 Worker 后，Vercel 每次部署触发 webhook 时，Worker 会将完整 JSON 以代码块格式推送到微信。

## 常见问题

**免费额度够用吗？**

Server酱免费版每天 5 条消息，每分钟上限 50 条。Vercel 部署频率通常不高，免费额度基本够用。订阅会员目前特价最低 3 元/月，一天最多可发 1000 条（[价格详情](https://sct.ftqq.com/subscribe)）。

**配置了 webhook 但没收到消息？**

先确认 SendKey 是否正确、Vercel webhook 是否已触发（查看 Vercel 部署日志确认 webhook 发送状态）。中转方式还需检查 Worker 的日志输出。更多排查步骤见[常见问题与排查](https://sct.ftqq.com/docs/getting-started/faq/)。

**部署频繁触发会超限吗？**

每分钟上限 50 条。如果项目部署非常频繁，建议在中转脚本中做去重或合并处理。

**SendKey 以 sctp 开头怎么填？**

sctp 开头的 SendKey 属于 Server酱³，API 端点改为 `https://你的UID.push.ft07.com/send/你的SENDKEY.send`。直连和中转方式都替换此地址即可。

## 相关集成

- [Python 脚本推送](https://sct.ftqq.com/docs/integrations/python/) — 在 CI/CD 脚本中调用 Server酱 API 发送部署通知
- [Uptime Kuma 宕机告警](https://sct.ftqq.com/docs/integrations/uptime-kuma/) — 监控 Vercel 部署站点的可用性
- [青龙面板任务通知](https://sct.ftqq.com/docs/integrations/qinglong/) — 定时任务执行结果推送到微信


## 懒人方案：把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手，它就会替你完成 Server酱 的接入：

```text
请帮我把 Server酱 微信通知接入到我当前的项目/工具中：
1. API：POST https://sctapi.ftqq.com/{SendKey}.send，参数 title（必填，不能含换行）、desp（正文，支持 Markdown，可选）；成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头，则改用 https://{uid}.push.ft07.com/send/{SendKey}.send，uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取；如果没有，提醒我到 https://sct.ftqq.com 免费获取（每天 5 条额度）。
4. 安全要求：不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定：任务结束发 1 条结果摘要即可，批量任务合并成一条，不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。
```

