【问题标题】:Google Forms Script ItemResponse getScore() returns nullGoogle 表单脚本 ItemResponse getScore() 返回 null
【发布时间】:2018-01-10 16:21:55
【问题描述】:

不确定这是否是错误,但getScore() 方法 (https://developers.google.com/apps-script/reference/forms/item-response#getscore) 总是为我返回 null,而据说它应该返回 double

表单测验,确实接受答案,所有问题的分数都设置为2,分数是在 Google 表单的回复中注册。

// Code.gs

function onOpen (e) {
  setOnSubmitTrigger();
}

function setOnSubmitTrigger () {
  var form = FormApp.getActiveForm();

  ScriptApp.newTrigger(respondToFormSubmit)
    .forForm(form)
    .onFormSubmit()
    .create();
}

function respondToFormSubmit (e) {
  var form = FormApp.getActiveForm();
  var allResponses = form.getResponses();
  var response = allResponses[allResponses.length - 1];
  var itemResponses = response.getItemResponses();

  console.log(form.isQuiz()); // yields true

  for (var i in itemResponses) {
    var itemResponse = itemResponses[i];

    Logger.log(itemResponse.getScore()); // (!) always yields null
  }
}

以下问题中提到了该主题,但既没有专门针对该问题,也没有提供解决方案:

【问题讨论】:

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


【解决方案1】:

不确定这是否记录在 Google 脚本参考中,但这里有一个解决方案:

// Code.gs

// ...

function respondToFormSubmit (e) {
  // ...
  var itemResponses =
    response.getGradableItemResponses(); // NOT .getItemResponses()

  console.log(form.isQuiz()); // yields true

  for (var i in itemResponses) {
    var itemResponse = itemResponses[i];

    Logger.log(itemResponse.getScore()); // yields number!
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多