
我们提供两种简单的部署方式,您可以根据自己的需求选择其中一种。
这种方法无需任何本地开发环境,只需复制粘贴即可完成部署。
-
登录 Cloudflare 仪表板
- 打开浏览器,访问 https://dash.cloudflare.com/ 并登录。
-
创建 Worker 服务
- 在左侧菜单中,选择 Workers 和 Pages。
- 点击 创建应用程序,然后选择 创建 Worker。
- 为您的 Worker 指定一个全局唯一的名称 (例如
my-wxpush-service),然后点击 部署。
-
粘贴代码
- 部署完成后,点击 编辑代码 进入在线代码编辑器。
- 删除编辑器中所有的默认代码。
- 将项目
src/index.js文件中的全部内容复制并粘贴到编辑器中。
-
保存并部署
- 点击编辑器右上角的 保存并部署 按钮。
-
配置环境变量 (重要)
- 返回 Worker 的主管理页面,进入 设置 > 变量。
- 在 环境变量 部分,点击 添加变量,依次添加以下配置。这些是服务运行所必需的敏感信息。
API_TOKEN: 用于接口调用的访问令牌,请设置一个足够复杂的随机字符串。WX_APPID: 您的微信公众号 AppID。WX_SECRET: 您的微信公众号 AppSecret。WX_USERID: 默认接收消息用户的 OpenID,多个用户请用|符号分隔 (例如openid1|openid2)。WX_TEMPLATE_ID: 您要使用的微信模板消息 ID。WX_BASE_URL: (可选) 点击模板消息后跳转的基础 URL。
- 注意:添加变量时,请确保勾选 加密 选项,以保护您的凭证安全。
如果您希望通过 Git 进行版本控制和持续集成,推荐使用此方法。
-
Fork 或克隆项目
- 首先,将本项目 Fork 到您自己的 GitHub 账户,或者克隆后推送到您自己的新仓库。
-
连接到 GitHub
- 登录 Cloudflare 仪表板,进入 Workers 和 Pages。
- 点击 创建应用程序,切换到 Pages 选项卡,然后点击 连接到 Git。
-
选择仓库
- 选择您刚刚创建的 GitHub 仓库。
-
配置构建和部署
- 项目名称:为您项目指定一个名称。
- 生产分支:选择您希望部署的分支 (通常是
main或master)。 - 框架预设:选择
None。 - 构建设置:将所有构建相关的字段 (如构建命令、输出目录) 留空。
- 根目录:保持默认的
/即可。
-
添加环境变量
- 在配置页面的 环境变量 部分,添加与 方法一 中相同的
API_TOKEN,WX_APPID,WX_SECRET等变量。 - 同样,请务必为每个变量勾选 加密 选项。
- 在配置页面的 环境变量 部分,添加与 方法一 中相同的
-
保存并部署
- 点击 保存并部署。Cloudflare 会自动从您的仓库拉取代码并完成部署。
- 此后,每当您向指定的生产分支推送新的代码提交时,Cloudflare 都会自动为您重新部署。
部署成功后,您的服务访问地址会显示在 Worker 或 Pages 的主页面上。
服务部署成功后,您可以通过构造 URL 发起 GET 请求来推送消息。
|
1 2 |
https://<您的Worker地址>/wxsend |
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
token |
String | 是 | 您在 API_TOKEN 中设置的访问令牌。 |
title |
String | 是 | 消息的标题。 |
content |
String | 是 | 消息的具体内容。 |
appid |
String | 否 | 临时覆盖默认的微信 AppID。 |
secret |
String | 否 | 临时覆盖默认的微信 AppSecret。 |
userid |
String | 否 | 临时覆盖默认的接收用户 OpenID。 |
template_id |
String | 否 | 临时覆盖默认的模板消息 ID。 |
base_url |
String | 否 | 临时覆盖默认的跳转 URL。 |
基础推送
向默认配置的所有用户推送一条消息:
|
1 2 |
https://<您的Worker地址>/wxsend?title=服务器通知&content=服务已于北京时间%2022:00%20重启&token=your_secret_token |
临时覆盖用户
向一个临时指定的用户推送消息:
|
1 2 |
https://<您的Worker地址>/wxsend?title=私人提醒&content=记得带钥匙&token=your_secret_token&userid=temporary_openid_here |
除了 GET 请求,服务也支持 POST 方法,更适合用于自动化的 Webhook 集成。
请求地址
|
1 2 |
https://<您的Worker地址>/wxsend |
请求方法
|
1 2 |
POST |
请求头 (Headers)
|
1 2 3 4 |
{ <span class="pl-ent">"Authorization"</span>: <span class="pl-s"><span class="pl-pds">"</span>你的token<span class="pl-pds">"</span></span>, <span class="pl-ent">"Content-Type"</span>: <span class="pl-s"><span class="pl-pds">"</span>application/json<span class="pl-pds">"</span></span> } |
请求体 (Body)
请求体需要是一个 JSON 对象,包含与 GET 请求相同的参数。
|
1 2 3 4 |
{ <span class="pl-ent">"title"</span>: <span class="pl-s"><span class="pl-pds">"</span>Webhook 通知<span class="pl-pds">"</span></span>, <span class="pl-ent">"content"</span>: <span class="pl-s"><span class="pl-pds">"</span>这是一个通过 POST 请求发送的 Webhook 消息。<span class="pl-pds">"</span></span> } |
使用示例 (cURL)
|
1 2 3 4 5 6 7 8 |
curl -X POST https://<span class="pl-k"><</span>您的Worker地址<span class="pl-k">></span>/wxsend -H <span class="pl-s"><span class="pl-pds">'</span>Authorization<span class="pl-pds">'</span></span>: <span class="pl-s"><span class="pl-pds">'</span>你的token<span class="pl-pds">'</span></span> -H <span class="pl-s"><span class="pl-pds">'</span>Content-Type<span class="pl-pds">'</span></span>: <span class="pl-s"><span class="pl-pds">'</span>application/json<span class="pl-pds">'</span></span> -d <span class="pl-s"><span class="pl-pds">'</span>{</span> <span class="pl-s"> "title": "来自 cURL 的消息",</span> <span class="pl-s"> "content": "自动化任务已完成。"</span> <span class="pl-s"> }<span class="pl-pds">'</span></span> |
如果消息成功发送给至少一个用户,服务会返回 HTTP 200 状态码和类似 Successfully sent messages to 1 user(s). First response: ok 的文本。
如果发生错误(如 token 错误、缺少参数、微信接口调用失败等),服务会返回相应的 HTTP 4xx 或 5xx 状态码和错误信息。