微信 AppID / AppSecret 不再放 Worker,改由本地随请求体携带,Worker 用完即弃、不落盘。带 CORS,可直接被本地工作台调用。
body.appid || env.WECHAT_APPID、body.secret || env.WECHAT_APPSECRET —— 请求体优先,回退环境变量(兼容 V1 旧用法)。Access-Control-Allow-Origin: * + OPTIONS 预检,浏览器网页(本地工作台)可跨域直调。GET / 健康检查 + POST /api/draft 推草稿,无网页表单、无登录墙。DRAFT_API_KEY(X-API-Key 或 ?key=)。| 方法 | 路径 | 说明 |
|---|---|---|
| GET | / | 健康检查 |
| OPTIONS | /api/draft | CORS 预检 |
| POST | /api/draft | 推草稿,body 带 appid/secret + 标题正文封面 |
curl -X POST https://xxx.com/api/draft \
-H "Content-Type: application/json" \
-H "X-API-Key: 你的密钥" \
-d '{"appid":"wx...","secret":"...","title":"标题","content":"<p>正文</p>","cover":"data:image/png;base64,..."}'
worker-deploy.js(凭证穿透版)覆盖 → Deploy。DRAFT_API_KEY;无需再配 WECHAT_APPID/WECHAT_APPSECRET。WECHAT_*,删掉它们即彻底「只存本地」。draft_push.py 的 config.json 配好 appid/secret,推送时自动穿透;本地工作台 workbench/index.html 首次设置填四项即可用。点击下载 worker-deploy.js,整段复制粘贴到 Cloudflare 控制台即可部署。
凭证"存本地"的代价是每次推送会经 HTTPS 请求体传到 Worker——Cloudflare 作为传输层技术上能看到、但不持久化存储。这比直连时 secret 拼在 URL(会进日志)更干净,也是"本地动态 IP 依然免白名单"前提下的最合理解法。真要连 CF 都碰不到,只能回到本地直连微信(--direct),那又得把本机 IP 加白名单,与用 Worker 的初衷冲突。