【问题标题】:Creating a google script to automate google form submission, using values from a google sheet使用谷歌表格中的值创建谷歌脚本以自动提交谷歌表单
【发布时间】:2020-05-12 08:20:59
【问题描述】:

我正在尝试创建一个谷歌脚本,它可以帮助我使用谷歌表格中的值自动创建谷歌表单响应。

这是我正在使用的脚本。

function auto_data() {

  var formURL="https://docs.google.com/forms/d/e/1FAIpQLSfmepj661gmkUgleFCLPrqeB0z9mPyI8DLZ4kTBI0Y3eByOCQ/viewform";

  var wrkBk = SpreadsheetApp.getActiveSpreadsheet();
  var wrkSht = wrkBk.getSheetByName("Data");

  var numb = wrkSht.getRange("G11").getValue();
  var time = wrkSht.getRange("H11").getValue();
  var eaten = wrkSht.getRange("I11").getValue();
  var randnumb = wrkSht.getRange("J11").getValue();

  var datamap={
    "entry.1108902288" :numb,
    "entry.1493000579" :randnumb,
    "entry.1582850009" :time,
    "entry.908606572" :eaten
    };

  var options = {
    "method": "post",
    "payload": datamap
  };

  UrlFetchApp.fetch(formURL, options);

}

很遗憾,我收到了这个错误:

Exception: Request failed for https://docs.google.com returned code 405. Truncated server response: <!DOCTYPE html><html lang="en"><head><meta name="description" content="Web word processing, presentations and spreadsheets"><meta name="viewport" c... (use muteHttpExceptions option to examine full response). (line 25, file "Code")

谁能帮帮我?谢谢!

【问题讨论】:

  • 您可以通过编程方式创建prefilled google 表单,但不能通过编程方式提交表单。你到底想做什么?

标签: javascript google-sheets google-forms data-entry


【解决方案1】:
  • 405表示请求不被允许

  • 您不能只向 Google 表单发出发布请求。

  • 您可以通过编程方式创建一个预填充的表单网址 - 您只需在浏览器中打开此链接并点击 Submit

  • 为此,请将答案以e.parameters 的形式传递给各个条目。

示例:

function auto_data() {

  var formURL="https://docs.google.com/forms/d/e/1FAIpQLSfmepj661gmkUgleFCLPrqeB0z9mPyI8DLZ4kTBI0Y3eByOCQ/viewform";

  var wrkBk = SpreadsheetApp.getActiveSpreadsheet();
  var wrkSht = wrkBk.getSheetByName("Data");
  var numb = wrkSht.getRange("G11").getValue();
  var time = wrkSht.getRange("H11").getValue();
  var eaten = wrkSht.getRange("I11").getValue();
  var randnumb = wrkSht.getRange("J11").getValue();  

  var datamap=[
    "entry.1108902288=" + numb,
    "entry.1493000579=" + randnumb,
    "entry.1582850009=" + time,
    "entry.908606572=" + eaten
    ];
 var prefillUrl = formURL+"?"+ datamap[0] + "&" + datamap[1] + "&" + datamap[2] + "&" + datamap[3];
  Logger.log(prefillUrl);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多