如何扫描二维码将信息导入谷歌表单



我想首先说,我在谷歌脚本中的编码经验有限,但在R中有丰富的编码经验。我尝试过使用以前的stackedoverflow解决方案(使用QR码在谷歌表单中输入值?(,但任何时候我都会编辑URL,它会说"很抱歉,目前无法打开文件">

我将code.gs下列出的代码复制到主脚本中,并更改了"此处的表单id"以匹配我的谷歌表单id,并添加了"成功"one_answers"失败"的两个HTML代码,但它没有起作用。

我有一个谷歌表格,要求人们输入他们唯一的身份证号码。与其让人们输入错误的号码,我想设置它,这样他们就可以扫描手机上的二维码,并让谷歌表单自动填充询问他们身份证号码的第一个问题。谷歌表单上还有其他问题需要回答,但我只想第一个问题自动填充。

这是谷歌表格:https://docs.google.com/forms/d/e/1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew/viewform?usp=sf_link

我使用的表单ID是1FAIpQLSdsP0e2FsC54QY0Nirpipi21yC-8ODjO9aRlfOMq51vODRaew,我认为这是基于谷歌表单URL的ID。

编辑:这是我当前的代码脚本。gs:

function doGet(e){
try {
var passNo = e.parameters.passNo;
var qNumber = e.parameters.qNumber;

var form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');
var items = form.getItems();
// assuming question 1 is the pass number question
var q = items[qNumber[0] - 1].asTextItem();   
var itemResponse = q.createResponse(passNo[0])

var FormResponse = form.createResponse();    
FormResponse.withItemResponse(itemResponse);
FormResponse.submit();

return HtmlService.createHtmlOutputFromFile('Success')
}
catch(e){
return HtmlService.createHtmlOutputFromFile('Failure'); 
}
}

我还添加了Success.html和Failure.html代码,与前面的示例完全一样:

<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Success
</body>
</html>

<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Failure
</body>
</html>

部署脚本后,我得到了URL,并练习添加";passNo";以及";qNumber;正如他们在示例中所做的那样,在我的URL末尾添加?passNo=21480&qNumber=1,但URL会导致页面错误:

https://script.google.com/macros/s/AKfycbx9oXtjZXGNHPN1axSjKvP5StGbBej0IbQzK1vNT-HB6hzEvIzDbcLor-qtgVDU3ftQ/exec?passNo=1234&qNumber=1

问题和解决方案:

当我看到您当前的脚本时,我注意到在ar form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');https://docs.google.com/forms/d/e/1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew/viewform?usp=sf_link,您使用的是预览URL中的ID。在这种情况下,该ID不是谷歌表单ID。我认为这可能是您出现问题的原因。

例如,当我使用正确的Google Form ID测试您的脚本时,不会出现错误"成功;返回。因此,请修改如下。

发件人:

var form = FormApp.openById('1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew');

收件人:

var form = FormApp.openById('### Google Form ID ###');
  • 在这种情况下,请使用https://docs.google.com/forms/d/###/edit中的###

注意:

  • 当您修改谷歌应用程序脚本时,请将部署修改为新版本。这样,修改后的脚本就会反映在Web应用程序中。请小心
  • 你可以在";在不改变用于新IDE的Web应用程序的URL的情况下重新部署Web应用程序">

最新更新