LoginSignup
0
0

【GAS】Google ClassroomのcourseId等一覧を取得する

Last updated at Posted at 2024-02-10

1 はじめに

最近、Google Apps Script(GAS)を始めました。Googleクラスルームで色々試してみようと思ったのですが、GASの中ではクラスルームはID(courseId)で指定する必要があります。そこで、自分が関係しているクラスルームの名前とcourseIdの一覧を調べるスクリプトを書いてみました。スプレッドシートから作成するコンテナバインドプロジェクトです。

2 スクリプト

listMyCourses.gs
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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0