1 はじめに
最近、Google Apps Script(GAS)を始めました。Googleクラスルームで色々試してみようと思ったのですが、GASの中ではクラスルームはID(courseId)で指定する必要があります。そこで、自分が関係しているクラスルームの名前とcourseIdの一覧を調べるスクリプトを書いてみました。スプレッドシートから作成するコンテナバインドプロジェクトです。
(続きの投稿がありますのでこちらも読んで下さい↓
Google ClassroomのcourseId等一覧を取得する(その2))
2 スクリプト
function listMyCourses() {
const name = 'myclasslist'; //リストを書き出すシート
const myfile = SpreadsheetApp.getActiveSpreadsheet();
const newSheet = myfile.insertSheet(); //シートの作成
const isSheetExist = myfile.getSheetByName(name);
if (isSheetExist) { //シート名nameがあれば削除
myfile.deleteSheet(isSheetExist);
}
newSheet.setName(name); //新しいシートの名前をnameにする
newSheet.clear();
newSheet.appendRow(["クラス名", "courseId"]); //項目名追加
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);
newSheet.appendRow([courses[i].name,courses[i].id]);
}
newSheet.activate();
Browser.msgBox(name+"作成");
}
}
結果を書き出すシート名(ここではmyclasslist)を指定しています。同じ名前のシートがあれば、削除して新規にシートを作ります。結果のシートには、一行目が項目名で(クラス名、courseId)、2行目以下に自分がメンバーであるクラスルームの名前とcourseIdが入ります。
3 使い方
シート(nameに指定した以外の名前)に図形描画でボタンを作って、このスクリプトを割り当てて使用すると良いと思います。シートmyClassListに書き出されたcourseIdは数値型になっていますが、GASの中でcourseIdを使用する時には文字列である必要があります。
4 参考
Google Classroom ガイド Google Apps Script クイックスタート
https://developers.google.com/classroom/quickstart/apps-script?hl=ja
【GAS】Google Classroomで、生徒に個別に連絡をする。(Phys Ken)
https://qiita.com/phys-ken/items/269a118df0bc0c895ad4