Gws Forms

📋 命令行自动化管理 Google 表单

通过命令行批量读写 Google Forms,支持创建表单、批量更新、获取响应数据,适合自动化问卷管理与数据收集场景

收藏
3.9k
安装
1.1k
版本
1.0.10
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

gws-forms 是 Google Workspace CLI (gws) 的表单管理子命令,提供对 Google Forms API 的完整命令行封装。核心工作流遵循「创建→更新→收集」三步模型:

1. 创建表单gws forms create --params title="调查问卷" —— 仅能设置标题,返回 formId
2. 批量更新gws forms batchUpdate --params formId=xxx --json '[...items]' —— 添加题目、设置逻辑

3. 获取数据gws forms responses list --params formId=xxx —— 拉取提交记录

其他关键操作包括:

  • get —— 导出完整表单结构(题目、设置、发布状态)
  • setPublishSettings —— 控制表单公开范围(需非旧版表单)
  • watches —— 订阅表单变更事件,实现实时同步

参数构建技巧

使用 gws schema forms.<resource>.<method> 预检 API 所需的字段类型、枚举值和嵌套结构,避免 400 错误。复杂 payloads 建议写入 JSON 文件并通过 --json @file.json 加载。

显著优点

  • 自动化友好:纯 CLI 交互,无缝嵌入 CI/CD、crontab、shell 脚本
  • 批量操作原子性batchUpdate 支持事务性提交,失败自动回滚
  • 事件驱动架构watches 资源支持 Cloud Pub/Sub 推送,替代轮询
  • 与 Workspace 生态深度整合:天然继承 Google 账号权限体系、版本历史、协作编辑

潜在缺点与局限性

  • 创建限制create 方法仅接受 titledocument_title,所有题目必须通过二次 batchUpdate 注入,增加脚本复杂度
  • 旧版表单兼容性setPublishSettings 明确不支持无 publish_settings 字段的 Legacy Forms
  • 无内置模板机制:需自行管理 JSON 模板文件,无官方预设题库
  • 响应数据非实时:极端情况下存在秒级延迟,不适合高频毫秒级场景

适合人群

  • 运维工程师:自动化批量生成标准化问卷(入职调查、设备申领)
  • 数据分析师:定时 ETL 抓取表单响应至数据仓库
  • 教育技术管理员:批量配置课程评估表单、设置提交截止提醒
  • 低代码开发者:作为 n8n、Make、GitHub Actions 的自定义节点后端

常规风险

  • OAuth 范围泄露gwsformsdrive 双重授权,脚本中硬编码 token 可能导致横向越权
  • batchUpdate 不可逆:删除题目或清空响应的操作无软删除确认,误操作数据永久丢失
  • Rate Limit 隐性触发:Google Forms API 默认 100 quota units/用户/100秒,批量脚本需内置指数退避
  • 并发编辑冲突:多用户同时 batchUpdate 同一表单可能产生版本覆盖,需外加分布式锁

Gws Forms 内容

手动下载zip · 1.1 kB
SKILL.mdtext/markdown
请选择文件