Google表单脚本ItemResponse getScore()返回null [英] Google Forms Script ItemResponse getScore() returns 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屋!