0

HTTP GET リクエストを使用して、アクティブなクラスのみを取得するにはどうすればよいでしょうか。アクティブなクラスのリストのみを返すパラメータを Google API URL に追加できますか? または、返された配列を検索し、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");
            }
        }
    };

どんな助けでも大歓迎です。ありがとう!

4

3 に答える 3

1

ユーザー オブジェクトのようなフィルター オプションはまだありません。(少なくとも私が知る限り、それは文書化されています)。はい、すべてのコースを取得してから、アーカイブされたコースを除外する必要があります。https://developers.google.com/classroom/reference/rest/v1/coursesコースが取り得る 5 つの状態をリストする CourseState セクションがあります。[COURSE_STATE_UNSPECIFIED、ACTIVE、ARCHIVED、PROVISIONED、DECLINED]

于 2016-08-09T20:45:09.750 に答える
0

ドキュメントを読むと、courses.listは、要求しているユーザーが表示を許可されているコースのリストを返します。アクティブなクラスのみを取得する直接的な方法については述べていません。上記の実装に頼る必要があるかもしれません。

于 2016-08-10T07:30:19.693 に答える
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;
}
于 2016-09-16T06:50:07.557 に答える