当前位置: 首页 > 知识库问答 >
问题:

如何在Google课堂中按标题删除课程(作业)

能逸清
2023-03-14
function deleteAssignments() {
  var courseIds = ['100000000000','100000000001','100000000002'];
  var topicNames = ['topic3','topic2','topic1'];
  for (var i = 0; i < courseIds.length; i++) {

    var topics = Classroom.Courses.Topics.list(courseIds[i]).topic;
    var topicObj = topics.reduce((o, e) => Object.assign(o, {[e.name]: e.topicId}), {});
    for (var j = 0; j < topicNames.length; j++) {

      var topicId = topicObj[topicNames[j]];

      var exec = Classroom.Courses.CourseWork.delete({
        title: "Example Assignment",
        topicId: topicId,
        workType: "ASSIGNMENT",
      }, courseIds[i]);
    }
  }
} 

我还研究了如何使用Google Apps脚本通过Google Clasonal API使用Course.CourseWork.list列出作业,但当我运行答案中的代码时,我的日志显示正在加载,但似乎从未完成。

共有1个答案

孙斌
2023-03-14

在此示例脚本中,通过搜索课程作品名称来删除课程作品。

在使用此脚本之前,请再次确认高级Google services启用了课堂API。

function deleteCourseworks() {
  var courseIds = ['###courseId1###', '###courseId2###',,,];
  var courseworkNames = ["###coursework name1###", "###coursework name2###",,,];

  for (var i = 0; i < courseIds.length; i++) {
    var courseWorks = Classroom.Courses.CourseWork.list(courseIds[i], {courseWorkStates: "PUBLISHED"}).courseWork;
    var courseWorkObj = courseWorks.reduce((o, e) => Object.assign(o, {[e.title]: e.id}), {});
    for (var j = 0; j < courseworkNames.length; j++) {
      var courseWorkId = courseWorkObj[courseworkNames[j]];
      console.log(courseIds[i])
      console.log(courseWorkId)
      var exec = Classroom.Courses.CourseWork.remove(courseIds[i], courseWorkId);
    }
  }
}
  • 在这种情况下,如果要删除状态为“draft”的课程作品,请将courseworkstates:“published”修改为courseworkstates:“draft”
    null
    null
function deleteCourseworks() {
  var courseIds = ['###courseId1###', '###courseId2###',,,];
  var courseworkNames = ["###coursework name1###", "###coursework name2###",,,];

  for (var i = 0; i < courseIds.length; i++) {
    var courseWorks = Classroom.Courses.CourseWork.list(courseIds[i], {courseWorkStates: "PUBLISHED"}).courseWork;
    var courseWorkObj = courseWorks.reduce((o, e) => Object.assign(o, {[e.title]: o[e.title] ? o[e.title].concat(e.id) : [e.id]}), {});
    for (var j = 0; j < courseworkNames.length; j++) {
      var courseWorkIds = courseWorkObj[courseworkNames[j]];
      if (courseWorkIds) {
        courseWorkIds.forEach(id => {
          var exec = Classroom.Courses.CourseWork.remove(courseIds[i], id);
        });
      }
    }
  }
}
 类似资料:
  • 当在Google Claston API中执行方法时,当我尝试将附件添加到学生提交的文件中时,返回403错误。 该调用是从一个经过身份验证的学生帐户发出的,并被添加为链接资源。Developer Console项目确实启用了Google Classwork API,并且对Google Classwork API的其他调用也运行良好,例如和。我错过了什么?当使用Try it!Google课堂文档站点

  • 问题:我们有超过8000个课程要创建,并且希望使用批处理系统,或者至少异步地创建它们。我们通过别名在create调用中传递我们的内部唯一课程ID。但是,在回调方法中,该值不会传递回来。这意味着我们无法将google的唯一ID链接到我们的ID上,也无法知道是否出现了问题,哪些课程不是创建的。 示例:我想用以下ID创建5个课程:1234 1235 1236 1237 1238 所以我创建了一个批处理请

  • 目前我正在开发Google课堂API以将Google课堂集成到我的.NET web应用程序中。我可以在我的SQL server数据库中存储课程细节、每门课程的教师和学生,但我不能在我的数据库中存储教师和学生给出的作业和评估的相关数据分数和学生及时完成作业的数量。我该如何实现这一点呢?您的小回答将对我们有很大帮助

  • 执行失败:接收到无效的JSON负载。“Course_Work.Materials[0]”处得未知名称“Share_Mode”:找不到字段.接收到无效的JSON负载。“Course_Work.Materials[0].Drive_File”处的名称“ID”未知:找不到字段。接收到无效的JSON负载。“Course_Work.Materials[0].Drive_File”处的未知名称“Title”:

  • Scala课堂是Twitter启动的一系列讲座,用来帮助有经验的工程师成为高效的Scala 程序员。Scala是一种相对较新的语言,但借鉴了许多熟悉的概念。 因此,课程中的讲座假设听众知道这些概念,并展示了如何在Scala中使用它们。我们发现这是一个让新工程师能够快速上手的有效方法。网站里的是伴随这些讲座的书面材料,这些文字材料本身也是很有用的。 方法 我们认为最有意义的教学方式是,不要把Scal

  • 我们正在制作一个学生门户,所以我想找到一种方法,从一个学生开始,找出他们的课程和导师,这样我就可以列出他们,并显示待完成的作业。 有没有办法做到这一点,我所能看到的是由我们本地DB中的教师输入的大量数据,所以我们可以将每个类的Google类ID绑定到我们本地的类结构。 我们可以从一个学生开始,动态地使用api来计算其余的吗? 我正在使用.NET和C#