首页 > 解决方案 > 使用 Google Apps 脚本通过 Google Classroom API 使用 course.coursework.list 列出作业

问题描述

对此没有经验-请原谅任何错误的单词选择...

我正在尝试使用 Google Apps 脚本来获取在不同教室中设置的作业列表。我相信我拥有所需的所有适当的 API、凭据和范围。我按照教程设置了一个简单的班级列表,该列表有效,然后进行了编辑以尝试列出每个班级中的作业,如下所示:

/**  
 * Lists 100 course names and ids.
 */
function listCourses() 
{
  var optionalArgs = {
    pageSize: 100
  };
  var listArgs = {
    pageSize: 10
  };
  var response = Classroom.Courses.list(optionalArgs);
  var courses = response.courses;
  if (courses && courses.length > 0) 
  {
    for (i = 0; i < courses.length; i++) 
    {
      var course = courses[i];

      Logger.log('%s (%s)', course.name, course.id);

      var info = Classroom.Courses.CourseWork.list(listArgs);
      var works = info.works;
      if (works && work.length > 0) 
      {
        for (i = 0; i < works.length; i++) 
        {
          var work = works[i];

          Logger.log('%s (%s)', work.title, work.creationTime);
        }     
      }
    }
  }
}

错误是:未找到请求的实体。(第 22 行,文件“代码”)
*第 22 行:var info = Classroom.Courses.CourseWork.list(listArgs);

任何想法表示赞赏,谢谢

标签: javascriptgoogle-apps-scriptgoogle-apigoogle-classroom

解决方案


这一行:var info = Classroom.Courses.CourseWork.list(listArgs);

应该:Classroom.Courses.CourseWork.list(courseId, optionalArgs)

或这个:Classroom.Courses.CourseWork.list(courseId)

关键是 courseId 是必需的。

您可以在此处的 API Explorer 上试用。

所以代码应该是这样的:

function listCourses() {
  var optionalArgs = {pageSize: 100};
  var listArgs = { pageSize: 10 };
  var response = Classroom.Courses.list(optionalArgs);
  var courses = response.courses;
  if (courses && courses.length > 0) {
    for (i = 0; i < courses.length; i++) {
      var course = courses[i];
      Logger.log('%s (%s)', course.name, course.id);
      var info = Classroom.Courses.CourseWork.list(course.id, listArgs)
      var works = info.works;
      if (works && work.length > 0) {
        for (i = 0; i < works.length; i++) {
          var work = works[i];
          Logger.log('%s (%s)', work.title, work.creationTime);
        }     
      }
    }
  }
}

但请仔细检查,因为这是我第一次启用 Classroom API。


推荐阅读