以前、自分の関係しているGoogle Classroomの一覧をスプレッドシートに書き出すスクリプトを書いたのですが、表示する情報はクラス名とcourseIdのみでした。
(過去記事【GAS】Google ClassroomのcourseId等一覧を取得する)
今回、ついでに他の情報も取得・表示するようにしてみました。下のスクリプトで、変更1と変更2と書いているところ、2行の変更です。
ownerId、enrollmentCode(クラスコード)、teacherGrompEmail、courseGroupEmail、courseState も取得できるようにしました。
teacherGrompEmail(教師のグループID)やcourseGroupEmail(クラスのグループID)は、他の方法でも調べられますが、知っているといろいろ便利かもしれない。
classroom_s.gs
//listMyCourses
'use strict';
function listMyCourses() {
const sheetname = 'myclasslist'; //リストを書き出すシート
const myfile = SpreadsheetApp.getActiveSpreadsheet(); //このスプレッドシート
const newSheet = myfile.insertSheet(); //シートの作成
//シート名がnameと同じシートがあれば削除
const isSheetExist = myfile.getSheetByName(sheetname);
if (isSheetExist) {
myfile.deleteSheet(isSheetExist);
}
newSheet.setName(sheetname); //新しいシートの名前をsheetnameにする
newSheet.clear();
//変更1
newSheet.appendRow(["name", "courseId", "ownerId", "enrollmentCode(クラスコード)", "teacherGrompEmail", "courseGroupEmail", "courseState"]);
const response = Classroom.Courses.list();
const courses = response.courses;
if (!courses || courses.length === 0) {
console.log('No courses found.');
return;
} else {
for (let i = 0; i < courses.length; i++){
Logger.log('%s(%s)',courses[i].name,courses[i].id);
//変更2
newSheet.appendRow([courses[i].name,courses[i].id,courses[i].ownerId,courses[i].enrollmentCode,courses[i]
.teacherGroupEmail,courses[i].courseGroupEmail,courses[i].courseState])
}
newSheet.activate(); //作成したシートを表示
Browser.msgBox(sheetname+"作成"); //メッセージを表示
}
}
【GAS】Google ClassroomのcourseId等一覧を取得する
https://qiita.com/freshcl/items/ad79fe433e776f5517dd