如何用Google App Script将Google Form响应存入数组并传给云系统POST请求
Google Form 提交后直接提取字段发起API请求实现代码
前置配置
- 记录你的Google Form中4个目标字段的准确问题标题,需和表单内填写的完全一致
- 准备好目标API的请求地址
TK_URL和鉴权凭证TOKEN
完整可运行代码
// 替换为你自己的表单ID const FORM_ID = "你的表单ID"; // 替换为你表单里对应4个字段的准确问题标题 const FIELD_MAPPING = { name: "项目名称", client: "客户名称", starts_at: "项目开始日期", ends_at: "项目结束日期" }; // 替换为你自己的API配置 const TK_URL = "你的API接口地址"; const TOKEN = "你的API鉴权TOKEN"; // 表单提交触发的主函数,无需手动调用,配置触发器后自动执行 function onFormSubmit(e) { // 直接获取最新提交的响应,不需要拉取所有历史记录 const latestResponse = e.response; const itemResponses = latestResponse.getItemResponses(); // 初始化提交数据 const postData = { project_state: "Tentative" }; // 匹配需要的4个字段 itemResponses.forEach(item => { const questionTitle = item.getItem().getTitle(); const answer = item.getResponse(); // 匹配映射表,把对应答案填入postData for (const [key, formTitle] of Object.entries(FIELD_MAPPING)) { if (questionTitle === formTitle) { postData[key] = answer; } } }); // 校验必填字段是否都获取到 const requiredFields = ["name", "client", "starts_at", "ends_at"]; const missingFields = requiredFields.filter(field => !postData[field]); if (missingFields.length > 0) { Logger.log(`缺失必填字段:${missingFields.join(",")}`); return; } // 发起POST请求 const options = { method: "POST", contentType: "application/json", payload: JSON.stringify(postData) }; const requestUrl = `${TK_URL}auth=${TOKEN}`; try { const response = UrlFetchApp.fetch(requestUrl, options); if (response.getResponseCode() === 200) { const resJson = JSON.parse(response.getContentText()); const projectId = resJson.id; Logger.log(`项目创建成功,ID:${projectId}`); } } catch (err) { Logger.log(`请求失败:${err.toString()}`); } } // 如果需要批量处理所有历史表单响应,可手动运行这个函数 function batchProcessAllHistoryResponses() { const form = FormApp.openById(FORM_ID); const allResponses = form.getResponses(); allResponses.forEach(res => { // 复用上面的处理逻辑,把每个响应传入模拟的事件对象 onFormSubmit({response: res}); }); }
部署操作步骤
- 将上述代码复制到Google Apps Script编辑器,替换所有标注为需要自定义的参数
- 保存项目,按照提示授权表单访问、网络请求等必要权限
- 左侧菜单栏选择「触发器」→ 「添加触发器」:
- 选择要运行的函数:
onFormSubmit - 选择事件来源:
来自表单 - 选择事件类型:
表单提交时 - 保存触发器配置
- 选择要运行的函数:
- 提交一次测试表单,查看执行日志验证API调用是否正常
内容的提问来源于stack exchange,提问作者Just
相关产品推荐
相关产品推荐

