QuickForm 网页发布与数据收集

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

把 AI 生成的单页 HTML(表单/问卷/小测/互动页)发布到 quickform.cn 并接上数据收集的标准流程。当用户提到 quickform、快表单、把网页「发到 quickform」、要给网页加「提交到后台/收集数据」、要「数据大屏/导出作答记录」时使用。全程走 HTTP 接口,不需要浏览器,不依赖 Cookie。涵盖:账号与教师认证引导、建任务、给 HTML 注入提交逻辑、上传成公网链接、拿到后台数据页地址。账号无关,可直接分发给其他老师。

一句话选型结论

按资料字段整理

QuickForm 网页发布与数据收集是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_a5827f21/quickform
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_a5827f21仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791732057
正文体量9.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
QuickForm 网页发布与数据收集当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

9.3 KB
模型实际读到的说明书原文,来自技能仓库

quickform.cn 发布与数据收集

> 一句话:让 AI 生成的网页,变成「学生点开就能做、你在后台能看到全班数据」的在线作业。


第 0 步:第一次用?照这四步走

> 这一节是给从没用过 quickform 的新用户的。Skill 在对话里会主动引导,你也可以直接把这一节转发给别人。

① 注册账号

打开 https://quickform.cn/register ,用邮箱注册并登录。

② 完成「教师认证」——这一步不能跳

没认证的话,接口一律返回 403 certification_required,什么都做不了。

  • 入口:登录后进个人中心 / 个人设置
  • 认证通过后你会看到这条绿条:
    > 已认证教师:您的账号已完成教师身份认证,任务创建不再受限,上传的 HTML 页面将自动公开访问。
  • 认证后的好处:建任务不限个数、上传的 HTML 自动公开访问(跳过人工审核)、可生成 QFLink 授权码

③ 生成「QFLink 授权码」

路径:个人设置 → QFLink授权码 标签页

  1. 在「用途说明」里随便写一句,例如 WorkBuddy自动化
  2. 点右边的蓝色按钮「生成 QFLink 授权码」
  3. 复制生成出来的那串码(格式 qf + 32 位十六进制)

> 图挂了就看文字:个人中心 →「QFLink授权码」区域 → 填写用途说明 → 点蓝色按钮「生成 QFLink 授权码」→ 复制那串 qf 开头的码。

> 页面上写的「使用条件:仅已认证教师可用。未认证时即使用用户名+密码或 QFLink 授权码也会返回 403」,说的就是第 ② 步。
> 授权码可以随时在列表里点「停用」,停用后旧码立即失效——所以它比直接给密码安全。

④ 把这两样交给 AI

> 「我的 quickform 用户名是 xxx,QFLink 授权码是 qfxxxxxxxx...」

然后直接说:「把这个网页发到 quickform」。剩下的建任务、改代码、上传、给链接,AI 全包。


这是什么 / 不是什么

quickform.cn 是教育场景的数据收集服务(温州科技高中 + 温州大学出品)。核心模型:

  • 每个任务有一个 apiid
  • 前端把数据 POST https://quickform.cn/api/<apiid> → 进后台
  • 后台可看作答记录、导出表格、做统计

它跟「把 HTML 传上去托管」是一体的:/cli/upload 上传后返回的公网地址,与 /api/<apiid> 同源,所以前端直接 fetch 不会有跨域问题。

⚠️ 容易搞错的地方:
- 不要用 CloudBase / Vercel / GitHub Pages 去实现「发到 quickform」——那是另一条路。
- 用户说「发到 quickform」= 走本文档。
- /cli/* 接口不是浏览器操作,不需要登录网页、不需要 Cookie,纯 HTTP。


凭据怎么处理

认证靠 username + password 或 auth_code(二选一,等价),放在请求体里。

方式 说明 建议
auth_code 个人中心「QFLink 授权码」,qf+32hex,可随时停用 ✅ 首选
password 账号密码 仅当用户不愿意生成授权码时

硬规则:
- 先问用户要用户名 + 授权码(或密码),不要猜、不要复用别人的。
- 授权码/密码不要写进任何文件(包括本 Skill、脚本、仓库),只在当次命令里用。
- 先跑 getuser 确认 is_certified: true 再往下走;未认证就引导用户做第 0 步 ②。
- 认证失败多次会 429 限流,别反复试错密码。


环境坑(实测必踩)

  1. Bash / sandbox 里 curl 访问 https 会因 Windows schannel 吊销检查失败,报 CRYPT_E_REVOCATION_OFFLINE,http_code=000。
    → 所有 curl 必须加 --ssl-no-revoke。
  2. agent-browser 是独立无头实例,不共享用户自己 Chrome 的登录态(默认 --headless=new,看不到窗口)。别指望用它去 quickform 控制台点按钮。
  3. 上传时文件名用 ASCII:中文文件名在 multipart 里易被编码搞乱。先 cp 成 _upload_xxx.html,传完删掉。
  4. 服务端是 http→https 301,脚本里统一用 https。

接口速查

认证字段(username + auth_code/password)全部放 body。

用途 请求
校验账号 POST /cli/getuser → 看 is_certified
任务列表 POST /cli/list → tasks:[{apiid,name}]
建任务 POST /cli/add {task_name, task_intro} → {apiid}
任务详情/数据 POST /cli/show {apiid, include_data:true} → 含 task_detail_url、submissions
上传 HTML POST /cli/upload multipart:username/auth_code/apiid/file(仅 .html/.htm,≤4MB)→ {url, filename}
提交数据 POST /api/<apiid>(JSON 或 form-urlencoded)
取全部数据 GET /api/<apiid>/all
# 建任务
curl -s --ssl-no-revoke -X POST "https://quickform.cn/cli/add" \
  -H "Content-Type: application/json" \
  -d '{"username":"<用户名>","auth_code":"<授权码>","task_name":"任务名","task_intro":"说明"}'

# 上传(先改成 ASCII 文件名)
cp "中文名.html" _upload_x.html
curl -s --ssl-no-revoke -X POST "https://quickform.cn/cli/upload" \
  -F "username=<用户名>" -F "auth_code=<授权码>" \
  -F "apiid=<apiid>" -F "file=@_upload_x.html;type=text/html"
# → {"url":"https://quickform.cn/uploads/<hash>.html?taskid=<apiid>"}

标准流程

  1. 要凭据:用户名 + 授权码(没认证就先引导做第 0 步)。
  2. 建任务:/cli/add 起个能看懂的 task_name,task_intro 写清用途。记下 apiid。
  3. 改 HTML:注入提交逻辑(见下节)。
  4. 上传:ASCII 文件名 → /cli/upload → 拿到公网 url。
  5. 验链路:curl -sL 拉一次页面确认返回的是自己的 HTML;再 POST 一条明确标注为自检的记录,/cli/show include_data:true 确认字段落库。提醒用户:自检记录要在控制台手动删(没有删除接口)。
  6. 交付三件套:
    - 🎒 学生入口:https://quickform.cn/uploads/<hash>.html?taskid=<apiid>
    - 📊 后台数据页:task_detail_url(形如 https://quickform.cn/task/<id>)
    - 🔌 原始数据 API:https://quickform.cn/api/<apiid>/all

前端提交代码模板

关键点:字段名用中文(后台表头直接可读);同源 fetch 为主,sendBeacon 兜底(本地双击打开是跨域,fetch 会挂,靠 beacon 火-and-forget 送出)。

const QF_URL = `https://quickform.cn/api/<apiid>`;
let submitted = false;

function submitResult(payload, onOk){
  if (submitted) return;
  submitted = true;
  let settled = false;
  const timer = setTimeout(()=>{ if(!settled){ settled = true; beacon(payload, onOk); } }, 6000);
  fetch(QF_URL, {
    method: `POST`,
    headers: { "Content-Type": `application/json` },
    body: JSON.stringify(payload)
  }).then(r=>r.text().then(t=>{
    if (settled) return; settled = true; clearTimeout(timer);
    let j = null; try { j = JSON.parse(t); } catch(e){}
    if (j && j.status === `success`) onOk();
    else { submitted = false; /* 显示「重新提交」按钮 */ }
  })).catch(()=>{ if(settled) return; settled = true; clearTimeout(timer); beacon(payload, onOk); });
}

function beacon(payload, onOk){
  if (!navigator.sendBeacon) return;
  const fd = new URLSearchParams();
  Object.keys(payload).forEach(k => fd.append(k, payload[k]));
  // 必须用 safelisted 类型,否则会触发预检而失败
  const blob = new Blob([fd.toString()], { type: `application/x-www-form-urlencoded` });
  if (navigator.sendBeacon(QF_URL, blob)) onOk();
}

字段一致性:后台表头由第一条提交推断,所以每次提交的 key 必须完全一致(缺字段会留空)。改字段名 = 开新任务。


注意事项

  • 上传后 is_public_approved 可能为 false,但只要账号已认证,uploads 链接能直接打开(返回原 HTML,不是审核页)。
  • 没有公开的「删除提交记录」接口,误提交的记录只能用户在控制台手删。
  • 官方还有 PyPI 包 quickform-cli(命令 qf),同一个后端;接口文档见 https://quickform.cn/cli 。
  • 打包分发给别人时:整个 quickform-publish/ 文件夹一起给(含 assets/ 截图),对方放到自己的 ~/.workbuddy/skills/ 下即可。

常见问题

5 问
答案由本站依据条目字段整理
QuickForm 网页发布与数据收集怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_a5827f21/quickform。安装方式为未标注。装完刷新技能列表或重开客户端。

QuickForm 网页发布与数据收集支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

QuickForm 网页发布与数据收集权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

QuickForm 网页发布与数据收集收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

QuickForm 网页发布与数据收集用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。