You need to enable JavaScript to run this app. 如何在Google Apps Script中监听Google Forms的“Response not Found”事件?
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Apps Script中监听Google Forms的“Response not Found”事件?

解决方案

你无法在Google Apps Script的服务端运行环境中监听浏览器前端的弹窗事件,换个思路直接通过Google Forms官方接口提前校验回复是否存在,不需要跳转到前端页面再做判断。


具体实现步骤

  • 先从你持有的编辑URL中提取两个核心参数:表单ID(d/和下一个/之间的字符串)、回复ID(#response=后面的字符串)
  • 在Google Apps Script中启用Form服务,通过表单ID打开对应表单实例
  • 调用接口尝试获取目标回复,若抛出指定异常则说明回复不存在,直接触发你需要的自定义操作即可

示例代码

function checkResponseExist(targetUrl) {
  // 提取表单ID
  const formId = targetUrl.match(/d\/([^/]+)\//)[1];
  // 提取回复ID
  const responseId = targetUrl.match(/response=([^&]+)/)[1];

  try {
    const form = FormApp.openById(formId);
    // 尝试获取对应回复,不存在会直接抛出错误
    const targetResponse = form.getResponse(responseId);
    // 回复存在时的自定义逻辑写在这里
    return true;
  } catch (err) {
    if (err.message.includes('Response not found')) {
      // 回复不存在时的自定义操作写在这里,比如弹出警告、发通知邮件、写日志等
      // 如果是在有UI的上下文(比如绑定表格/文档的脚本)可以直接弹提示
      SpreadsheetApp.getUi().alert('目标回复不存在');
      return false;
    }
    // 其他权限、参数错误的处理逻辑
    throw err;
  }
}

注意事项

  • 如果脚本是在无UI的环境运行(比如定时触发器),把弹出警告的代码替换为你需要的其他操作即可
  • 运行前需要给脚本授权表单的访问权限,确保脚本所属账号有目标表单的编辑权限

内容的提问来源于stack exchange,提问作者Miguel Prytoluk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 03:54:02