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

如何通过非自有Google Form的viewform链接用代码获取编辑URL

问题原因
  • Google Form的编辑URL仅对表单所有者、被授予编辑权限的协作者开放,你没有该表单的编辑权限,调用FormApp.openByUrl()或者FormApp.openById()接口必然会触发权限报错,这是Google官方的权限限制,没有绕过方法。
  • 你的核心需求是定期提交表单响应,完全不需要获取编辑URL,直接解析公开表单的提交参数构造POST请求即可实现自动提交,这是当前场景下的最优实现方案。
自动提交实现步骤
  1. 提取表单公开ID:你给出的提交链接中1FAIpQLSeZfR4Di9yfTDc5yXc7WYmLy-MjwVf_XLC7_ZeQ7367Yh2DpQ就是该表单的公开ID,对应的提交接口地址为原viewform后缀替换为formResponse的地址。
  2. 抓包获取表单项参数:打开公开表单页面,按F12打开浏览器开发者工具,切换到「网络」面板,手动提交一次测试响应,过滤找到请求路径包含formResponse的POST请求,查看该请求的表单数据,提取每个表单项对应的entry.xxxx格式参数,这些就是每个字段的提交键名。
  3. 构造自动提交代码:根据提取的参数写代码构造POST请求,配置定时触发即可完成定期提交的需求,不需要调用需要权限的FormApp接口。

以下是Google Apps Script的示例代码:

function autoSubmitForm() {
  // 替换为对应表单的提交地址
  const submitUrl = "https://docs.google.com/forms/d/e/1FAIpQLSeZfR4Di9yfTDc5yXc7WYmLy-MjwVf_XLC7_ZeQ7367Yh2DpQ/formResponse";
  // 替换为你实际抓包获取的表单项参数和要提交的对应值
  const formData = {
    "entry.123456789": "要提交的内容1",
    "entry.987654321": "要提交的内容2"
  };
  const options = {
    method: "post",
    payload: formData,
    followRedirects: true
  };
  UrlFetchApp.fetch(submitUrl, options);
  console.log("表单提交成功");
}

需要定期执行的话,直接在Apps Script后台添加时间触发器,选择你需要的执行频率即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 22:15:05