金数据 + Server酱:表单新提交推送到微信

效果:金数据表单每次收到新提交,自动推送一条消息到你的微信

前置条件

  • Server酱 SendKey(30 秒获取教程
  • 金数据账号及已创建的表单
  • (可选)Cloudflare Workers 或腾讯云函数账号——仅当需要把表单字段内容送进消息正文时使用

配置步骤

方案一:固定文案直连(最简)

将以下 URL 填入金数据表单的 设置 → 数据推送/Webhook 推送地址(中文已 URL 编码):

https://sctapi.ftqq.com/你的SENDKEY.send?title=%E9%87%91%E6%95%B0%E6%8D%AE%E6%9C%89%E6%96%B0%E6%8F%90%E4%BA%A4

上面的编码对应文案"金数据有新提交"。金数据的 Webhook 要求 2 秒内收到 2XX 响应,而 Server酱 API 会优先读取 URL query 中的 title 参数并快速返回,因此直连即可。保存后提交一条测试数据,微信应收到推送。

如果你的 SendKey 以 sctp 开头(Server酱³),端点改为以下格式,其中 UID 是 sctp 后面的数字:

https://你的UID.push.ft07.com/send/你的SENDKEY.send?title=%E9%87%91%E6%95%B0%E6%8D%AE%E6%9C%89%E6%96%B0%E6%8F%90%E4%BA%A4

方案二:中转推送字段内容(Cloudflare Workers)

直连方案只能推送固定文案。若要把表单字段内容带进消息正文(desp),需要一层中转:由 Cloudflare Workers 接收金数据的 JSON,解析后转发给 Server酱。

第一步:创建一个 Cloudflare Worker,粘贴以下代码:

export default {
  async fetch(request, env, ctx) {
    const payload = await request.text();
    ctx.waitUntil(
      fetch('https://sctapi.ftqq.com/' + env.SERVERCHAN_SENDKEY + '.send', {
        method: 'POST',
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
        body: 'title=' + encodeURIComponent('金数据有新提交') +
              '&desp=' + encodeURIComponent(payload)
      })
    );
    return new Response('ok', { status: 200 });
  }
}

Worker 先返回 200 再异步转发,不会触发金数据的 2 秒超时。payload 是金数据推送的完整 JSON,会作为消息正文显示。你可以在此基础上解析 JSON 并提取特定字段格式化 desp。

第二步:在 Worker 的设置中添加环境变量 SERVERCHAN_SENDKEY,值为你的 SendKey。

第三步:将 Worker 的访问 URL 填入金数据表单的 设置 → 数据推送/Webhook 推送地址。

常见问题

每天能推多少条?

免费额度为每天 5 条,每分钟上限 50 条。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

配置后没收到消息?

先确认 SendKey 正确,再检查金数据 Webhook 配置是否正确。如使用中转方案,在 Cloudflare Workers 日志中查看转发请求是否报错。更多排查步骤见 常见问题与排查

金数据 Webhook 超时怎么办?

金数据要求 2 秒内收到 2XX 响应。直连方案中 Server酱 会快速返回;中转方案中 Worker 先返回 200 再通过 waitUntil 异步转发,不会超时。

能推送到钉钉或飞书吗?

Server酱 支持推送到微信服务号/企业微信/钉钉/飞书等多个通道,详见 /getting-started/channels/。

相关集成

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

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

请帮我把 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 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。