You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何扫描二维码导入信息到Google Forms并解决脚本运行报错问题

问题排查与解决方案

问题根因

  • 表单ID填写错误:你使用的是表单公开访问路径的发布ID,FormApp.openById()需要传入表单编辑界面的ID,两类ID不兼容导致脚本无权限访问表单,触发文件无法打开报错。
  • 脚本逻辑与需求不符:你当前使用的代码功能为自动提交仅包含ID的表单响应,并非你需要的「跳转到预填充ID的表单页、用户自主填写剩余内容」,完全不符合业务需求。
  • 部署权限配置错误:如果Web App部署时未设置为允许匿名访问,未登录谷歌账号的用户扫码时会触发权限报错。

可行解决方案

步骤1:获取正确的表单参数

  • 打开你的谷歌表单编辑页面,URL格式为https://docs.google.com/forms/d/【正确表单ID】/edit,复制/d/和/edit之间的字符串备用。
  • 在表单编辑页右上角点击三个点,选择「获取预填充链接」,在第一个ID输入框中随意填入测试值(如12345),点击页面底部「获取链接」-「复制链接」,从复制的链接中提取第一个问题的参数名,格式为entry.xxxxxx,记录该值。

步骤2:替换为正确的Code.gs代码

把原有Code.gs内容全部替换为以下代码,记得替换代码中的【你提取的entry.xxxxxx参数】:

function doGet(e) {
  try {
    // 读取URL传递的ID参数
    const passNo = e.parameter.passNo;
    if (!passNo) throw new Error("缺少ID参数");
    // 拼接预填充表单链接
    const prefillUrl = `https://docs.google.com/forms/d/e/1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew/viewform?【你提取的entry.xxxxxx参数】=${encodeURIComponent(passNo)}`;
    // 直接跳转到预填充的表单页面
    return HtmlService.createHtmlOutput(`
      <script>window.location.href = "${prefillUrl}";</script>
      <p>正在跳转到表单页...</p>
    `);
  } catch (err) {
    return HtmlService.createHtmlOutputFromFile('Failure');
  }
}

注:原有Success.html可以删除,脚本会直接跳转,Failure.html保留用作错误提示即可。

步骤3:正确部署Web App

  • 点击脚本编辑器右上角「部署」-「新建部署」
  • 点击设置图标选择「Web应用」
  • 执行身份选择「我(你的谷歌账号邮箱)」
  • 有权访问的人选择「任何人,甚至匿名用户」
  • 点击「部署」,完成权限验证后复制生成的Web App访问URL

步骤4:生成二维码

二维码内容设置为:【你复制的Web App URL】?passNo=用户的唯一ID,每个用户对应不同的passNo参数值即可,扫码后会自动跳转到预填充了对应ID的表单页面。

测试验证

访问拼接参数后的Web App链接,例:https://script.google.com/macros/s/xxx/exec?passNo=21480,确认可以正常跳转到预填充了21480的表单页面即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:54:04