【发布时间】:2021-11-28 21:11:36
【问题描述】:
我想首先说我在 google 脚本中的编码经验有限,但在 R 中具有丰富的编码经验。我尝试过使用以前的 stackoverflow 解决方案 (Using QR Code to enter value into Google Form?),但任何时候我都会编辑 URL ,它会说“抱歉,目前无法打开文件。”
我将 code.gs 下列出的代码复制到主脚本中,并更改了“your-form-id-here”以匹配我的 google sheet 的 ID,并添加了“Success”和“Failure”的两个 HTML 代码,但它没有奏效。
我有一个谷歌表单,要求人们输入他们的唯一 ID 号。与其让人们错误输入他们的号码,我想设置它以便他们可以扫描手机上的二维码并让 Google 表单自动填充第一个询问他们 ID# 的问题。他们需要在 Google 表单上回答其他问题,但我希望自动填充第一个问题。
这是 Google 表单:https://docs.google.com/forms/d/e/1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew/viewform?usp=sf_link
我使用的表单 ID 是 1FAIpQLSdsP0e2FsC54QY0Nyrpipi21yC-8ODjO9aRlfOMq51vODRaew,我认为这是基于 Google 表单 URL 的 ID。
编辑:这是我当前的 Code.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”,就像他们在示例中所做的那样,将?passNo=21480&qNumber=1 添加到我的 URL 的末尾,但是 URL 会导致页面错误:
【问题讨论】:
-
例如,如果您使用与this answer相同的脚本,大约
changed 'your-form-id-here' to match my google sheet's ID,在这种情况下,它的意思是var form = FormApp.openById('your-form-id-here');?如果我的理解是正确的,我认为your-form-id-here的值必须是Google Form ID。我很担心。为了正确理解您当前的情况,能否提供您当前的脚本,包括说明? -
见上面的编辑!
-
感谢您回复并提供您当前的脚本。从您更新的问题中,我提出了一个答案。你能确认一下吗?如果这没有用,我深表歉意。
标签: google-apps-script qr-code google-forms