Google表单脚本ItemResponse getScore()返回null [英] Google Forms Script ItemResponse getScore() returns null

查看:94
本文介绍了Google表单脚本ItemResponse getScore()返回null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

不确定是不是bug,但是getScore()方法( https://developers.google.com/apps-script/reference/forms/item-response#getscore )始终为我返回null,而据说它应该返回一个double.

Not sure if it is a bug or not, but the getScore() method (https://developers.google.com/apps-script/reference/forms/item-response#getscore) always returns null for me, while it is said it should return a double.

形式的测验,接受,所有问题的得分均设置为2,得分在Google表单的回复中注册.

The form is a Quiz, does accept answers, the score is set to 2 to all questions, the score is being registered in the responses in the Google Form.

// 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
  }
}

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

The topic is mentioned in the following questions, but they are neither focused specifically on the issue, nor provide a solution:

  • How to check if a response is correct?
  • Google forms get score of respondent's answer

推荐答案

不确定是否在Google脚本参考中对此进行了说明,但这是一种解决方案:

Not sure if this is documented in Google Script Reference, but here is a solution:

// 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!
  }
}

这篇关于Google表单脚本ItemResponse getScore()返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆