← 返回首页

QuickForm CLI 接口说明

供命令行、扣子编程、OpenClaw 等工具自动化创建与查看数据任务,无需打开网页。


1. 基础信息


2. 增加数据任务 POST /cli/add

创建一条新的数据任务,并返回用于提交数据的 apiid

请求参数

参数 必填 说明
username 用户名
password 密码
task_name 任务名称
task_intro 任务介绍/描述

(兼容字段:title 等同 task_namedescription 等同 task_intro。)

成功响应(200)

{
  "success": true,
  "apiid": "a1b2c3d4ef"
}

apiid 即该任务的 API 标识,后续提交数据、拉取数据都使用此 id。

错误响应

示例(curl)

# JSON
curl -X POST "https://quickform.cn/cli/add" \
  -H "Content-Type: application/json" \
  -d '{"username":"teacher1","password":"your_password","task_name":"课堂签到表","task_intro":"本周签到"}'

# 表单
curl -X POST "https://quickform.cn/cli/add" \
  -d "username=teacher1&password=your_password&task_name=课堂签到表&task_intro=本周签到"

3. 管理员重置用户密码 POST /cli/reset_user_password

使用管理员账号在 CLI 中重置任意用户(非自己)的登录密码,无需打开后台网页。

请求参数

参数 必填 说明
username 管理员用户名(或与登录一致的邮箱/手机号)
password 管理员密码
new_password 目标用户的新密码,至少 6 个字符
target_username 二选一 要重置密码的用户的用户名
target_user_id 二选一 要重置密码的用户数字 ID

(兼容字段:target 等同 target_username。)

成功响应(200)

{
  "success": true,
  "message": "密码已重置",
  "username": "student01",
  "user_id": 42
}

错误响应

示例(curl)

curl -X POST "https://quickform.cn/cli/reset_user_password" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin_user","password":"admin_pass","target_username":"student01","new_password":"NewPass789"}'

兼容旧路径:POST /mcp/reset_user_password(参数相同)。


4. 管理员修改用户邮箱 POST /cli/set_user_email

将指定用户的登录/通知邮箱改为新地址;成功后该用户的 email_verified 会重置为未验证,需用户自行在站内完成邮箱验证(与业务规则一致)。

请求参数

参数 必填 说明
username 管理员用户名(或邮箱/手机号)
password 管理员密码
new_email 目标用户的新邮箱(格式需合法)
target_username 二选一 目标用户的用户名
target_user_id 二选一 目标用户数字 ID

(兼容字段:target 等同 target_username。)

成功响应(200)

错误响应

示例(curl)

curl -X POST "https://quickform.cn/cli/set_user_email" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin_user","password":"admin_pass","target_username":"teacher01","new_email":"teacher@school.edu.cn"}'

兼容旧路径:POST /mcp/set_user_email(参数相同)。


5. 教师认证审核(管理员)

以下接口均需 管理员username + password。兼容路径:将 /cli/ 换成 /mcp/ 即可。

5.1 待审核列表 POST /cli/cert_pending

返回当前待审核status=0)的教师认证申请及材料元数据(不含文件二进制)。

参数 必填 说明
username 管理员用户名(或邮箱/手机号)
password 管理员密码
limit 条数上限,默认 50,最大 200

成功(200)success, count, items(每项含 request_id, user_id, username, school, phone, email, file_name, file_ext, has_file, created_at),以及 material_url(下载材料接口的完整 URL 说明用)。

5.2 下载认证材料 POST /cli/cert_material

request_id 下载用户上传的原始文件Content-Disposition: attachment,便于 curl -o)。

参数 必填 说明
username 管理员
password 管理员密码
request_id cert_pending 返回的 request_id

成功:文件流(非 JSON)。失败:JSON,404 表示记录或文件不存在。

curl -X POST "https://quickform.cn/cli/cert_material" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"***","request_id":12}' \
  -o ./cert_12.bin

5.3 通过或拒绝 POST /cli/cert_decide

参数 必填 说明
username 管理员
password 管理员密码
request_id 待审核申请的 ID
action approve(通过)或 reject(拒绝)
note 审核备注(与网页端一致;通过时会写入用户认证备注等)

说明:仅当申请仍为待审核时可处理;已处理返回 409 及当前 status

通过(approve) 的效果与后台「通过教师认证」一致:用户标记为已认证、任务上限无限制、并自动通过该用户下尚未通过的 HTML 任务审核等。

curl -X POST "https://quickform.cn/cli/cert_decide" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"***","request_id":12,"action":"approve","note":""}'

6. 查看数据任务列表 POST /cli/list

获取当前账号下所有数据任务及其 apiid 与名称。

请求参数

参数 必填 说明
username 用户名
password 密码

成功响应(200)

{
  "success": true,
  "tasks": [
    { "apiid": "a1b2c3d4ef", "name": "课堂签到表" },
    { "apiid": "x9y8z7w6vu", "name": "问卷回收" }
  ]
}

错误响应

示例(curl)

curl -X POST "https://quickform.cn/cli/list" \
  -H "Content-Type: application/json" \
  -d '{"username":"teacher1","password":"your_password"}'

7. 上传 HTML 文件 POST /cli/upload

上传单个 HTML/HTM 文件,返回上传结果与文件的公网访问地址(可用于扣子/OpenClaw 等场景下直接引用页面链接)。

请求方式

成功响应(200)

{
  "success": true,
  "url": "https://quickform.cn/static/uploads/xxxxxxxx.html",
  "filename": "xxxxxxxx.html"
}

错误响应

示例(curl)

curl -X POST "https://quickform.cn/cli/upload" \
  -F "username=teacher1" \
  -F "password=your_password" \
  -F "file=@/path/to/your/page.html"

8. 使用 apiid 提交与获取数据

拿到 apiid 后,与网页端一致:

完整提交地址示例https://quickform.cn/api/a1b2c3d4ef


9. 与扣子 / OpenClaw 的自动化流程

  1. 创建任务:调用 POST /cli/add,传入用户名、密码、任务名称(及可选介绍),得到 apiid
  2. 配置提交地址:在扣子/OpenClaw 应用中将「数据提交接口」配置为:
    https://quickform.cn/api/<apiid>
    例如:https://quickform.cn/api/a1b2c3d4ef
  3. 应用内提交:用户在前端填写的数据以 JSON 形式 POST 到上述地址即可写入 QuickForm。
  4. 查询任务列表:需要展示或选择「往哪个任务提交」时,可调用 POST /cli/list 获取当前用户下所有 apiid 与名称。

这样即可在不打开 QuickForm 网页的情况下,完成任务的创建、列表查看与数据提交地址的配置。


10. 返回数据格式小结

接口 成功时返回字段 说明
POST /cli/add success: true, apiid 新任务的 API 标识
POST /cli/reset_user_password success: true, username, user_id 已重置密码的目标用户
POST /cli/set_user_email success: true, email, email_verified, … 已修改目标用户邮箱
POST /cli/cert_pending success: true, items, count 待审核教师认证列表
POST /cli/cert_material (文件流) 认证上传的原始文件
POST /cli/cert_decide success: true, request_id, … 审核结果
POST /cli/list success: true, tasks tasks[{ apiid, name }, ...]
POST /cli/upload success: true, url, filename 上传文件的公网地址与保存文件名

所有错误均为 success: false 且带 message 字段,便于 CLI 或技能内统一处理。