Как настроить обратную связь, которая должна автоматически отображаться, когда пользователь отвечает на вопрос - PullRequest
1 голос
/ 23 октября 2019

В форме Google я хочу настроить обратную связь, которая должна автоматически отображаться, когда пользователь неправильно отвечает на вопрос. Я нашел класс QuizFeedback. Но когда я запустил пример справки о QuizFeedback, я получил 2 ошибки. Пример кода, подобный следующему:

var textItem = form.addTextItem().setTitle('Re-hydrating dried fruit is an example of what?');

var feedback = FormApp.createFeedback()
  .setDisplayText(
      "Good answer, but not quite right.  Please review chapter 4 before next time.")
  .addLink("http://wikipedia.com/osmosis");

textItem.setFeedbackForIncorrect(feedback);

Первая ошибка TypeError: Function setDisplayText not found in object FreebirdFeedbackBuilder.

А вторая ошибка Method setFeedbackForIncorrect (FormApp.QuizFeedbackBuilder) not found.

Я вижу еще один пример в качестве ссылкидля формы Google функция setDisplayText и метод setFeedbackForIncorrect используются одинаково.

Похоже, что использование функции setDisplayText и метода setFeedbackForIncorrect изменилось в Googleеще не обновлено.

Пожалуйста, дайте мне знать, как настроить обратную связь с классом QuizFeedback.

1 Ответ

2 голосов
/ 23 октября 2019

Ответ:

Представляется, что документация, предоставленная Google для этих методов, неверна!

Дополнительная информация:

QuizFeedback class имеет неправильные методы, перечисленные в блоках кода, поэтому вы получаете ошибки в своем коде.

Метод FormApp.createFeedback() возвращает объект QuizFeedbackBuilder - объект, который не имеетsetDisplayText() метод. Это причина первой ошибки: TypeError: Function setDisplayText not found in object FreebirdFeedbackBuilder.

Вторая ошибка, Method setFeedbackForIncorrect (FormApp.QuizFeedbackBuilder) not found., имеет аналогичное происхождение - класс TextItem не имеет метода с именем setFeedbackForIncorrect().

Это является , однако, методом класса MultipleChoiceItem, определенного типа элемента вопроса. К сожалению, это только метод MultipleChoiceItem, и поэтому вы не можете установить неправильное сообщение для TextItem ответов.

Однако вы можете задать общий отзыв, который показывает независимо от того, был ли вопрос правильным или нет. Это я отобразил в коде ниже. Однако QuizFeedbackBuilder объекты должны быть построены перед их добавлением с использованием метода .setGeneralFeedback().

Исправления:

Чтобы исправить это, необходимо переписать некоторый код:

var form = FormApp.getActiveForm();
  var textItem = form.addTextItem().setTitle('Re-hydrating dried fruit is an example of what?');
  var feedback = FormApp.createFeedback().setText(
    "Good answer, but not quite right.  Please review chapter 4 before next time.")
  .addLink("http://wikipedia.com/osmosis");
  // the next line is the general feedback
  textItem.setGeneralFeedback(feedback.build());

Надеюсь, это вам пригодится!

Проблема с документацией Google:

Я позволил себе отправить отчет в Google для редактирования документации, чтобы устранить эти ошибки. удаляются и правильные методы отражены в их документации.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...