82 lines
2.6 KiB
Markdown
82 lines
2.6 KiB
Markdown
# WPS 表单数据推送 -> GoToSocial 机器人
|
||
|
||
一个 Cloudflare Worker,用于将 WPS 表单收集的数据自动推送到 GoToSocial 发布动态。
|
||
|
||
## 工作流程
|
||
|
||
用户填写 WPS 表单 → WPS 推送数据 → Cloudflare Worker (本应用) → GoToSocial 发布动态
|
||
|
||
## 部署步骤
|
||
|
||
### 1. 安装依赖
|
||
|
||
本项目使用 [Bun](https://bun.sh/) 作为包管理器。
|
||
|
||
```bash
|
||
bun install
|
||
```
|
||
|
||
### 2. 登录 Cloudflare
|
||
|
||
执行以下命令,将根据提示在浏览器中登录您的 Cloudflare 账号。
|
||
|
||
```bash
|
||
bun x wrangler login
|
||
```
|
||
|
||
### 3. 设置密钥 (Secrets)
|
||
|
||
部署此 Worker 需要3个密钥。
|
||
|
||
1. **登录 WPS 后台,找到 `bind_code`**
|
||
* 在WPS表单的“数据推送”设置页面,您会看到一行说明,其中包含 `bind_code` 和一长串数字,像这样:
|
||
`{"bind_code":"20260119203041975010606"}`
|
||
* **复制**这串数字 (不要引号)。
|
||
|
||
2. **设置 BIND_CODE 密钥**
|
||
* 在终端执行以下命令,当提示时,粘贴您刚刚复制的数字:
|
||
```bash
|
||
bun x wrangler secret put BIND_CODE
|
||
```
|
||
|
||
3. **设置 GoToSocial 密钥**
|
||
* 执行以下命令来设置您的 GoToSocial 实例地址和访问令牌:
|
||
```bash
|
||
# 设置 GoToSocial 实例 API 地址
|
||
# 示例: https://your-domain.com/api/v1/statuses
|
||
bun x wrangler secret put GOTOSOCIAL_URL
|
||
|
||
# 设置 GoToSocial 访问令牌 (Bearer Token)
|
||
bun x wrangler secret put GOTOSOCIAL_TOKEN
|
||
```
|
||
|
||
### 4. (可选) 本地配置
|
||
|
||
`wrangler.toml` 文件包含本地开发时的配置。
|
||
|
||
- `GOTOSOCIAL_URL`: 你的 GoToSocial 实例 API 地址。
|
||
- `GOTOSOCIAL_VISIBILITY`: 动态的可见性,默认为 `private`。可选值:`public`, `unlisted`, `private`, `direct`。
|
||
- `BIND_CODE`: 您在WPS后台看到的 `bind_code`。
|
||
|
||
> **注意**: 在生产环境(部署后),配置的密钥 (`secrets`) 会覆盖 `wrangler.toml` 文件中的 `vars` 变量。
|
||
|
||
### 5. 部署
|
||
|
||
```bash
|
||
bun x wrangler deploy
|
||
```
|
||
|
||
部署成功后,Cloudflare 会提供一个 Worker URL,格式通常为:
|
||
`https://wps-gotosocial-bot.你的用户名.workers.dev`
|
||
|
||
### 6. 绑定 WPS 表单
|
||
|
||
1. 回到 WPS 表单的“数据推送”设置页面。
|
||
2. 在 **URL** 输入框中,填入你部署好的 Worker URL,并在末尾加上 `/webhook`。最终的 URL 应该像这样:
|
||
```
|
||
https://wps-gotosocial-bot.你的用户名.workers.dev/webhook
|
||
```
|
||
3. 确保您已经通过 `wrangler secret put BIND_CODE` 设置好了密钥。
|
||
4. 点击 **“校验并绑定”**。如果一切顺利,会提示绑定成功。
|
||
5. 之后,WPS 表单的任何新提交都将自动推送到你的 GoToSocial。
|