如何找到触发Google Form脚本运行的对应FormResponse提交记录
正确获取触发Google Form脚本的对应
FormResponse方法 - 核心实现方案:直接通过表单提交触发器的事件对象获取,这是唯一不受并发提交影响的100%准确方案
你给表单绑定的可安装提交触发函数,直接接收事件参数e即可取出对应触发本次脚本运行的提交记录,无需遍历全量提交:
function onFormSubmitHandler(e) { // 直接从事件对象取目标提交,完全不受并发提交干扰 const targetResponse = e.response; // 示例:获取本次提交的所有回答内容 const responseItems = targetResponse.getItemResponses(); responseItems.forEach(item => { console.log(`问题:${item.getItem().getTitle()},回答:${item.getResponse()}`); }); // 示例:获取该条提交的唯一ID,可用于后续业务溯源 const uniqueResponseId = targetResponse.getId(); }
不要使用
Form.getResponses()[Form.getResponses().length - 1]这类取最后一条提交的逻辑,并发场景下多个提交几乎同时写入时,脚本触发顺序和提交写入顺序可能不一致,会出现取到其他用户提交记录的问题,该问题已经过实测验证。
内容的提问来源于stack exchange,提问作者Julia
相关产品推荐
相关产品推荐

