将主题 ID 添加到 Google 课堂作业

Adding a Topic ID to a Google Classroom assignment

我正在尝试使用 Google Apps 脚本创建一个作业,并将它放在一个主题下,该主题也是在同一脚本中创建的。在未指定 topicId 时创建分配没有问题,但是一旦我尝试指定 topicId ,当我 运行 脚本时收到以下错误: API 调用到 classroom.courses.courseWork.create 失败并出现错误:收到无效的 JSON 负载。未知名称 "Test Topic"

这是我的代码:

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") 
}

是否可以通过名称来引用topicId,或者将脚本中创建的topicId编号赋值给一个可以引用的变量?

创建主题只需要提供名称即可(主题名称不是id,只有API可以生成id)。课堂 API 然后创建主题,它 returns 作为一个对象,上面定义了 topicId 属性,如下所示;

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

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

然后您可以在创建课程作业时使用 topicId