Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする方法

Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする アイキャッチ

Google App Script(GAS)でクラスに招待をする方法をご案内します。

1つのクラスに教師を何人か追加するならば、手動で追加した方が早いかもしれません。今回は、複数のクラスに教師を複数追加する必要がありました。そこで、GASを使って一気に追加し、教師を招待しました。

コースIDを確認する

GASでクラスにユーザーを追加するには、クラスのIDであるコースIDを把握する必要があります。方法については、以前に記事を書いていますので、そちらをそちらをご参照してください。

「Google App Script(GAS)でクラスの courseIdを確認する方法」

ユーザーIDを確認する

リファレンスには、以下の3つが指定されていますが、現実的なのはメールアドレスでしょうか。登録したいユーザーのメールアドレスを調べておきましょう。

  • ユーザーの数値識別子
  • ユーザーのメールアドレス
  • リクエスト元のユーザーを示す文字列リテラル “me”

スプレッドシートを用意する

新規で白紙のスプレッドシートを作成します。一番上に、「userId」、「courseId」、「role」の項目を作ります。下に、それぞれの内容を入力します。「role」は”TEACHER”を入力します。

ちなみに、roleには以下の3つが設定できます。

  • STUDENT
    コース内の生徒
  • TEACHER
    コースの教師
  • OWNER
    コースのオーナー
Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする スプレッドシート

GASのエディターを開く

エディターの開き方についてはこちらの記事を参照してください。

「Google ClassroomをGoogle App Script(GAS)で操作する」

下記のコードを入力します。上から2行目の最後にある「Id」にスプレッドシートのIdを入力します。スプレッドシートのIdは以下の図の赤枠内です。

Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする スプレッドシートid
function registrationUser() {
    var sheet = SpreadsheetApp.openById('Id');
    var values = sheet.getDataRange().getValues();
    values.shift();
    var array = values;
    for (var i in array) {
        var assignment = {
            userId: array[i][0],
            courseId: array[i][1],
            role: array[i][2]
        }
        var assignment = Classroom.Invitations.create(assignment);
        Logger.log('User registrated: %s (%s)', assignment.courseId, assignment.role)
    }
}

実行ログです。隠したところはコースIDが出ています。ユーザーIDが取れるといいのですが、nullで出力されてしまいました。

Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする 実行ログ

コード内に書き込んで実行する

人数が少ない場合には、わざわざスプレッドシート作る必要もありませんね。コードに書き込んで追加する例です。

function registrationUser() {
  var registrationUser = {
    "userId" : "ユーザーID/メールアドレス",
    "courseId" : "コースID",
    "role" : "TEACHER",
  }
var assignment = Classroom.Invitations.create('assignment');
Logger.log('User registrated: %s (%s)', assignment.courseId, assignment.role);
}

まとめ

課題の作り方を書きかけていたのですが、教師の追加作業をすることになったので、こちらの記事を書きました。テスト環境でスクリプトを書いて、動かして、検証して、本番環境へ、などとやっていると絶対に手動でやったほうが早いのですが、今後に備えてGASにこだわりました。

次回からは、課題の作成の記事を書いていきます。