GoogleAppsScript解説

GoogleAppsScriptについて解説いたします。

【GoogleClassroom】クラス(コース)をGoogleAppsScriptから操作する

はじめに

GoogleAppsScript(GAS)からGoogleClassroomのクラス(コース)を操作するには、 Google Classroom APIを使用します。

今回はどのようにしてGoogle Classroom APIを使用してクラスを作成するのか解説します。

Google Classroom APIを使用する

Google Classroom APIを使用するにはサービスに登録する必要があります。 方法は以下の記事をご覧ください。

bambadaichi.hatenablog.jp

クラスを作成する

function myFunction() {
  let course;
  course = Classroom.newCourse();       

  course.name = "GoogleAppsScript解説"; // クラスの名前
  course.ownerId = "me"; // 作成するアカウント

  // クラスを作成する
  let newcourse = Classroom.Courses.create(course);
}

解説

クラスを作成するには以下の関数を使用します。

Classroom.Courses.create(course);

引数にはクラスのパラメータが入った変数が必要となります。
クラスのパラメータはこちらを参考にしてください。

{
  "id": string,
  "name": string,
  "section": string,
  "descriptionHeading": string,
  "description": string,
  "room": string,
  "ownerId": string,
  "creationTime": string,
  "updateTime": string,
  "enrollmentCode": string,
  "courseState": enum (CourseState),
  "alternateLink": string,
  "teacherGroupEmail": string,
  "courseGroupEmail": string,
  "teacherFolder": {
    object (DriveFolder)
  },
  "courseMaterialSets": [
    {
      object (CourseMaterialSet)
    }
  ],
  "guardiansEnabled": boolean,
  "calendarId": string
}

新しくクラスを作成する場合には最低でも、
「name」(クラスの名前)と
「ownerId」(作成するアカウント)
の指定が必ず必要になります。 指定しなければエラーになります。

戻り値には新しく作成したクラスのパラメータが返却されます。

指定したクラスを取得する

function myFunction() {
  let id = '000000000000'; // 取得したいクラスのIDを入れる
  let course = Classroom.Courses.get(id);
}

解説

指定したクラスを取得するには以下の関数を使用します。

Classroom.Courses.get(id);

引数には取得したいクラスのIDを入れてください。
クラスのIDはClassroom.Courses.create()の戻り値や、次に紹介するすべてのクラスを取得する関数から確認できます。

戻り値には指定したクラスのパラメータが返却されます。

すべてのクラスを取得する

function myFunction() {
  let course = Classroom.Courses.list();
}

解説

クラスの一覧を取得するには以下の関数を使用します。

Classroom.Courses.list();

戻り値にはすべてのクラスのパラメータが返却されます。

クラスを削除する

function myFunction() {
  let id = '000000000000'; // 削除したいクラスのIDを入れる
  Classroom.Courses.delete(id);
}

解説

クラスを削除するには以下の関数を使用します。

Classroom.Courses.delete(id);

引数には削除したいクラスのIDを入れてください。

クラスを更新する

function myFunction() {
  let id = '000000000000'; // 変更したいクラスのIDを入れる
  let patchdata = {'name':'変更テスト'};
  Classroom.Courses.patch(patchdata,id,{'updateMask':'name'});  // クラスを更新する①
  
  let course = Classroom.Courses.get(id);
  course.courseState = 'ARCHIVED'; // クラスをアーカイブに変更する
  Classroom.Courses.update(course, id); // クラスを更新する②
}

解説

クラスを更新するには2種類の関数があります。

Classroom.Courses.patch(patchdata,id,{'updateMask':'name'});

こちらの関数は、第3引数のパラメータに指定されたフィールドのみ更新します。
一部のみ変更したい場合などは安全性を考えてこちらの関数を使用すると良いと思います。
パラメータには以下のフィールドが指定できます。

{
  "name": string,
  "section": string,
  "descriptionHeading": string,
  "description": string,
  "room": string,
  "ownerId": string,
  "courseState": enum (CourseState)
}

2つ目の関数です。

Classroom.Courses.update(course, id);

こちらの関数は第1引数に指定されたパラメータにそのまま更新する関数です。
第3引数にパラメータとしてフィールドを指定する必要がないため、簡単に変更できますが、その分注意が必要です。
Classroom.Courses.patch()で変更できないフィールドを更新する際にもこちらを使用すると良いでしょう。
戻り値には変更後のクラスのパラメータが返却されます。

まとめ

今回はクラスを操作する方法を解説いたしました。
クラスの中身(課題等)の操作については別記事にて解説いたします。

また、もう少し解説してほしい箇所があればぜひコメントください。

参考にしたサイト developers.google.com

【GoogleClassroom】GoogleAppsScriptでGoogle Classroom APIを使用する方法

はじめに

GoogleAppsScript(GAS)からGoogleClassroomを操作するには、
Google Classroom APIを使用します。

今回はどのようにしてGoogle Classroom APIを使用するのか解説します。

サービスの追加

スクリプトエディタを開いて、サービスの欄にある+を押下してください。 f:id:bambadaichi:20210508144824j:plain

サービスを追加ウィンドウが表示されます。 この中からGoogle Classroom APIを選択し、「追加」ボタンを押下してください。 f:id:bambadaichi:20210508145510j:plain

スクリプトエディタにClassroomが追加されていることが確認できます。 f:id:bambadaichi:20210508150305j:plain

まとめ

Google Classroomは、このGoogle Classroom APIを使用してGASから操作を行います。 Google Classroom APIからは以下の操作が行えます。(一例)

クラス・質問・投稿・課題・資料・学生・教師などの

作成、削除、更新、取得

GoogleClassroomAPIは開発中のため、関数が用意されていないためできない操作があったり、 不便な操作を強いられます。 ある程度できること、できないことの見極めが必要になります。

詳しくはGoogle Classroom APIのリファレンスをご覧ください。 developers.google.com

また、日本語の記事を作成予定なのでそちらもご覧ください。