【问题标题】:How to scan a QR Code to Import the Info Into Google Forms如何扫描二维码将信息导入 Google 表单
【发布时间】: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&amp;qNumber=1 添加到我的 URL 的末尾,但是 URL 会导致页面错误:

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

【问题讨论】:

  • 例如,如果您使用与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


【解决方案1】:

问题及解决方案:

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

例如,当我使用正确的 Google 表单 ID 测试您的脚本时,不会发生错误。返回“成功”。所以请修改如下。

发件人:

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

收件人:

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

注意:

【讨论】:

    猜你喜欢
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多