获取没有存档类的courses.list

时间:2016-08-07 21:21:32

标签: google-classroom

使用HTTP GET请求,您将如何仅获取活动的类。您是否可以向仅返回活动类列表的Google API网址添加参数?或者您是否必须搜索返回的数组并删除使用for循环存档的所有类?

    var classroom = new XMLHttpRequest();
    var accessToken = localStorage.getItem('accessToken');
    classroom.open('GET',
      'https://classroom.googleapis.com/v1/courses');
    classroom.setRequestHeader('Authorization',
      'Bearer ' + accessToken);
    classroom.send();

    classroom.onload = function () {
        if (classroom.readyState === classroom.DONE) {
            if (classroom.status === 200) {
              var response = JSON.parse(classroom.response);
              vm.classes = response.courses;
              console.log(response);
              for (var i = 0; i < response.courses.length; i++){
                var courses = response.courses[i];
                console.log(courses.name);

              }
            } else {
              console.log("Error Unknown");
            }
        }
    };

非常感谢任何帮助。 谢谢!

3 个答案:

答案 0 :(得分:1)

还没有像User对象那样的过滤器选项。 (据我所知,至少记录了这一点)。所以,是的,您必须完成所有课程,然后过滤掉已存档的课程。 https://developers.google.com/classroom/reference/rest/v1/courses这里有一个CourseState部分,其中列出了课程所处的5种可能状态。[COURSE_STATE_UNSPECIFIED,ACTIVE,ARCHIVED,PROVISIONED,DECLINED]

答案 1 :(得分:0)

通过阅读文档,courses.list返回允许请求用户查看的课程列表。它没有说明仅检索活动类的直接方法。您可能不得不求助于您的实施。

答案 2 :(得分:0)

试试这个:

function get_courses(student) {
  var optionalArgs = {
    studentId: student
  };
  var response = Classroom.Courses.list(optionalArgs);
  var courses = response.courses;
  var active_courses = [];
  if (courses && courses.length > 0) {
    for (i = 0; i < courses.length; i++) {
      var course = courses[i];
      if(course.courseState == "ACTIVE"){

        active_courses.push(course);

        Logger.log('%s (%s)', course.name, course.id);
      }
    }
  } else {
    Logger.log('No courses found.');
  }

  return active_courses;
}