2025年5月1日木曜日

Google Classroom API でクラスの一覧を取得したい


自分が指導・参加しているクラスの名称とIDを取得するコードを試しました


下記 Code.gs では pageSize で 100 を設定していますが

必ず 100件 返ってくるとは限らないらしいです

ここでは nextPageToken がある限り繰り返しているので

すべてのクラスが取得できるはずです




Code.gs
function listAllCourses() {
let pageToken = null;
do {
const response = Classroom.Courses.list({
pageSize: 100,
pageToken: pageToken
});
(response.courses || []).forEach(course =>
Logger.log(`名称: ${course.name} (ID: ${course.id})`)
);
pageToken = response.nextPageToken;
} while (pageToken);
}



Tips 1

クラスの状態も取得したい場合
function listAllCoursesWithState() {
let pageToken = null;
do {
const response = Classroom.Courses.list({
pageSize: 100,
pageToken: pageToken
});
(response.courses || []).forEach(course =>
Logger.log(`名称: ${course.name} (ID: ${course.id}), 状態: ${course.courseState}`)
);
pageToken = response.nextPageToken;
} while (pageToken);
}


クラスの状態の種類
  • COURSE_STATE_UNSPECIFIED
  • ACTIVE
  • ARCHIVED
  • PROVISIONED
  • DECLINED
  • SUSPENDED



Tips 2

ACTIVE のクラスだけ取得したい場合
function listActiveCourses() {
let pageToken = null;
do {
const response = Classroom.Courses.list({
pageSize: 100,
pageToken: pageToken,
courseStates: ['ACTIVE'] // ← ACTIVE だけ指定
});
(response.courses || []).forEach(course =>
Logger.log(`名称: ${course.name} (ID: ${course.id}), 状態: ${course.courseState}`)
);
pageToken = response.nextPageToken;
} while (pageToken);
}



Reference

Method: courses.list 

CourseState