以编程方式在Google Apps脚本的测验中允许查看分数

时间:2017-06-12 20:34:42

标签: google-apps-script google-form google-form-quiz

Google最近添加了在Google Apps脚本中编写测验的功能

var form = FormApp.create('Ice cream Quiz').setIsQuiz(true);
form.set
  // Make a 10 point question and set feedback on it
  var item = form.addCheckboxItem();
  item.setTitle("What flavors are in neapolitan ice cream?");
  item.setPoints(10);
  // chocolate, vanilla, and strawberry are the correct answers
  item.setChoices([
    item.createChoice("chocolate", true),
    item.createChoice("vanilla", true),
    item.createChoice("rum raisin", false),
    item.createChoice("strawberry", true),
    item.createChoice("mint", false)
  ]);
  // If the respondent answers correctly, they'll see this feedback when they view 
  //scores.
  var correctFeedback = FormApp.createFeedback()
      .setText("You're an ice cream expert!")
      .build();
  item.setFeedbackForCorrect(correctFeedback);

  // If they respond incorrectly, they'll see this feedback with helpful links to 
  //read more about ice cream.
  var incorrectFeedback = FormApp.createFeedback()
      .setText("Sorry, wrong answer")
      .addLink(
        "https://en.wikipedia.org/wiki/Neapolitan_ice_cream",
        "Read more")
      .build();
  item.setFeedbackForIncorrect(incorrectFeedback);

我希望测验的收件人能够自动查看自己的分数。我不知道如何以编程方式执行此操作。相反,我需要通过锣手动进入测验设置,然后将发布等级设置为“提交后立即”,并且受访者可以看到“错过的问题”,“正确的答案”,“点值”

是否可以通过编程方式设置这些?

1 个答案:

答案 0 :(得分:0)

此问题之前已被问过here(但我的答案尚未被提及或接受,因此我无法将其标记为重复)。这是我建议的解决方法:

AFAIAA,目前无法使用Google Apps脚本方法直接执行此操作。

一种可行的解决方法是创建一个最小的Google表单,将其作为测验,然后在每次提交后立即将其配置为'。不是在脚本中创建表单,而是仅复制此表单文件(使用您的脚本)并继续以编程方式在副本中构建测验。

值得注意的是,Google Apps脚本中的这一遗漏可能会导致完成的测验中出现错误。当使用脚本创建表单并使用.setIsQuiz(true)方法将其转换为测验时,"发布标记"设置默认值为"稍后,在手动审核后#34;。在表单设置用户界面中,此选项包括注释"打开电子邮件集合" - 这样,当手动释放结果时,会有一个电子邮件地址将结果发送到。使用上述步骤创建测验时,不会启用电子邮件收集。这意味着无法手动释放结果。上述解决方法缓解了这个问题。