Добавление идентификатора темы в назначение в классе Google - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь создать назначение с помощью скрипта Google Apps и поместить его в тему, которая также создается в том же скрипте. У меня нет проблем с созданием назначения, когда topicId не указан, но как только я пытаюсь указать topicId, я получаю следующую ошибку при запуске сценария: Сбой вызова API для classroom.courses.courseWork.create сошибка: получено неверное содержимое JSON. Неизвестное имя «Тестовая тема»

Вот мой код:

function makeStuff() {

  var topic = { 
    name: "Test Topic"
  };
  Classroom.Courses.Topics.create(topic, "46088716060");               

  var TWS1 =  {
    title: "Test Worksheet 1",
    state: "DRAFT",
    materials: [
      {
        driveFile:{
        driveFile: {
          id: "1REOs1RYtyVTX67VnJezjWf-wm7HqDVexeaeiQL3-HvM", 

        },
        shareMode: "STUDENT_COPY"
        }

      }
      ],
    workType: "ASSIGNMENT",
    topicId: {
    name: "Test Topic"
    }

  };

  Classroom.Courses.CourseWork.create(TWS1, "46088716060") 
}

Можно ли ссылаться на идентификатор темы по имени или назначать номер темы, созданный в сценариик переменной, на которую можно сослаться?

1 Ответ

0 голосов
/ 08 ноября 2019

Чтобы создать тему, вам нужно только указать имя (имя темы не является ее идентификатором, только API может генерировать идентификаторы). Затем Classroom API создает тему, которую он возвращает как объект со свойством topicId, определенным для него, как показано ниже;

var courseId = "46088716060";
var topicName = "Test Topic";

var topic = Classroom.Courses.Topics.create({name:topicName}, courseId);
var topicId = topic.topicId;

Затем вы используете этот topicId при создании курсовой работы.

...