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
コースのオーナー
GASのエディターを開く
エディターの開き方についてはこちらの記事を参照してください。
「Google ClassroomをGoogle App Script(GAS)で操作する」
下記のコードを入力します。上から2行目の最後にある「Id」にスプレッドシートのIdを入力します。スプレッドシートの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で出力されてしまいました。
コード内に書き込んで実行する
人数が少ない場合には、わざわざスプレッドシート作る必要もありませんね。コードに書き込んで追加する例です。
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にこだわりました。
次回からは、課題の作成の記事を書いていきます。