Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする方法
![Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする アイキャッチ](https://i0.wp.com/koshi.blog/wp-content/uploads/2022/05/2022-05-29_04.png?fit=1024%2C680&ssl=1)
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)でスプレッドシートを使ってクラスに招待をする スプレッドシート](https://i0.wp.com/koshi.blog/wp-content/uploads/2022/05/2022-05-29_01.png?resize=471%2C315&ssl=1)
GASのエディターを開く
エディターの開き方についてはこちらの記事を参照してください。
「Google ClassroomをGoogle App Script(GAS)で操作する」
下記のコードを入力します。上から2行目の最後にある「Id」にスプレッドシートのIdを入力します。スプレッドシートのIdは以下の図の赤枠内です。
![Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする スプレッドシートid](https://i0.wp.com/koshi.blog/wp-content/uploads/2022/05/2022-05-29_02.png?resize=728%2C41&ssl=1)
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)でスプレッドシートを使ってクラスに招待をする 実行ログ](https://i0.wp.com/koshi.blog/wp-content/uploads/2022/05/2022-05-29_03_2.png?resize=506%2C224&ssl=1)
コード内に書き込んで実行する
人数が少ない場合には、わざわざスプレッドシート作る必要もありませんね。コードに書き込んで追加する例です。
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にこだわりました。
次回からは、課題の作成の記事を書いていきます。