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

问题描述 投票:0回答:2

我正在尝试使用 Google Apps 脚本创建作业,并将其放在也在同一脚本中创建的主题下。在未指定 topicId 的情况下创建作业没有问题,但一旦我尝试指定 topicId ,运行脚本时就会收到以下错误: 对classroom.courses.courseWork.create 的 API 调用失败并出现错误:收到无效的 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") 
}

是否可以通过名称引用topicId,或者将脚本中创建的topicId编号分配给可以引用的变量?

google-apps-script google-classroom
2个回答
1
投票

创建主题时,您只需要提供一个名称(主题名称不是它的id,只有API可以生成id)。然后,Classroom API 创建主题,并以对象形式返回该主题,并在其上定义了

topicId
属性,如下所示;

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

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

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

topicId


0
投票

您能否提供一个示例,说明如何在已存在的主题下添加课程作业?我尝试了以下方法,但没有成功。我已经创建了一个主题并获取了 topicID

Classroom.Courses.CourseWork.create(assignment, topicID, courseId);
© www.soinside.com 2019 - 2024. All rights reserved.