カテゴリー
 管理者向けサンプル

Classroom API

このサンプルでは、Google Classroom でのクラスの作成、編集についての Google Apps Script のコードを記載しています。ここで扱うサンプル ソースコードは  こちら(github.com) からダウンロードできます。

以下のリンクから Google Classroom を操作するサンプル スプレッドシートがコピー可能です。まずは Classroom の設定を行っている Google アカウント を選択し、スプレッドシートをコピーしてお使いください。

Google Classroom の操作サンプル ※スプレッドシートをコピーするGoogle アカウントが必要です
コース(クラス)を Google Classroom で確認する

Google Classroom の操作

コース(クラス)一覧の取得

登録済みのコース(クラス)の一覧を取得します。

/**
* コース一覧の取得
*/
function getCourseList() {

  // シート名を指定してスプレッドシート を取得
  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = spreadsheet.getSheetByName('Classroom Info');

  // シート内のコンテンツをクリア
  sheet.getDataRange().clear();

  // 1行目 - ヘッダー出力
  let line = [
    'role',
    'id',
    'name',
    'section',
    'description',
    'room',
    'ownerId',
  ];
  let range = sheet.getRange(2, 1, 1, line.length);
  range.setValues([line]);

  // 教師・学習者それぞれ取得
  const roles = ['teacher', 'student'];
  for (let roleIndex=0; roleIndex<roles.length; roleIndex++) {
    let param = {};
    // 自分が担当・所属するコースを指定
    param[`${roles[roleIndex]}Id`] = 'me';

    // コース一覧を取得
    let response = Classroom.Courses.list(param);

    if (response) {

      // レスポンスからコース一覧を取得
      let courses = response.courses;

      if (courses) {

        for (let courseIndex=0; courseIndex<courses.length; courseIndex++) {
          // 結果をシートに出力
          line = [
            roles[roleIndex],
            courses[courseIndex].id, // コースID
            courses[courseIndex].name, // コース名
            courses[courseIndex].section, // セクション
            courses[courseIndex].description, // 説明
            courses[courseIndex].room, // 教室
            courses[courseIndex].ownerId, // 担当教師(オーナー)
          ];
          range = sheet.getRange(3+courseIndex, 1, 1, line.length);
          range.setValues([line]);
        }
      }
    }
  }
}

登録済みのコース(クラス)の一覧を取得し、結果をスプレッドシートに出力します。

クラスの作成

新しいクラスを作成します。

/**
* コースの作成
*/
function createCourse() {

  // 作成するコース
  let newCourse = {
    'name': 'New Class 1', // コース名
    'section': 'section I', // セクション
    'description': 'This is a new course.', // 説明
    'room': 'Room A', // 教室
    'ownerId': 'me' // 担当教師(オーナー)
  };

  // コースを作成
  let createdCourse = Classroom.Courses.create (newCourse);

  // コースのIDを返却
  return createdCourse.id;
}

クラスの名前、セクションを指定して、クラスの情報を更新します。

コース(クラス)を編集する

登録済みのコース(クラス)の情報を更新します。

/*
* コース情報の更新
*/
function updateCourseInfo(newCourseId) {

  // コースの情報
  let updateCourse = {
    'name': 'New Class 2', // コース名
    'section': 'section II', // セクション
    'room': 'Room B', // 教室
  };

  // コースの情報を更新
  let updatedCourse = Classroom.Courses.update(updateCourse, newCourseId);
}

名前、セクション、教室を変更して、コース(クラス)の情報を更新します。

課題の管理

課題の作成

指定したコース(クラス)に課題を登録します。

/**
* コースに課題を登録
*/
function createCourseWork(newCourseId) {

  // 課題の情報
  let newCourseWork = {
    'title': 'New CourseWork 1', // タイトル
    'description': 'This is a new coursework.', // 説明
    'maxPoints': 100, // 得点
    'workType': 'ASSIGNMENT', // タイプ
    'state': 'PUBLISHED', // 公開
  };

  //課題を作成
  let createdCourseWork = Classroom.Courses.CourseWork.create(newCourseWork, newCourseId);

  // 課題のIDを返却
  return createdCourseWork.id;
}

課題の内容を指定し、課題を登録します。