WebAppによるクラス名簿の取得

Google Classroom API

ClassRoomはシンプルですが,シンプルすぎてやや機能不足を感じることもあります.しかしながら,これはGoogleのWebアプリですので,強力なWeb APIが用意されています.APIは使えばClassRoomのすべての情報にプログラムからアクセスできますので,自由に機能を拡張することが可能です.

APIのリファレンスは,ここ にあります.これを見て血が騒ぐ方は,ぜひチャレンジしてみてください!

Google Apps Script (GAS)

GASとは,Google Apps Scriptの略称で,Web上で Web APIを用いたコードを簡単に記述することができます.文法はJavaScriptをベースとしているので,簡単です.WebAPIは自前のサーバからも実行することができますが,その場合はOAuthでの認証が必要で,Client_idやAccess_tokenなど4種類の認証キーを用意しないとWebAPIでGoogleサービス内の情報にアクセスできず,かなり面倒です.それにくらべてGASを使えば,認証はコードに書く必要がなく自動的に行われるので,処理部分だけを記述すればよいので,簡単にWebAPIを利用可能です.

ここでは,遠隔授業WGで作成した,ClassRoomの「クラス名簿出力アプリ」を紹介します.この機能は普通はLMSならばあって然るべきですが,なぜかClassRoomにはありませんので,ClassRoom API+GASで実装してみました.

【サンプル】「クラス名簿出力アプリ」

ClassRoomでは,生徒の氏名の一覧を見ることはできますが,エクセル形式でエクスポートすることはできません.また学籍番号も分かりません.

GASの例として,教師になっているクラスの生徒の一覧を学籍番号順で出力するコードを書いてみました.ClassRoomの情報を読みだして,Google SpreadSheetのファイルをクラスごとに作成して,ClassRoomStudentListをいうフォルダをGoogle Driveに作成して,そこに出力します.さらに,メールアドレス(UECクラウドアカウントのID)の2文字目から8文字目までを学籍番号として抽出して,その昇順でソートします.これを全クラスについて行うことで,全クラスの名簿出力が終了します.コードが こちら にありますので,詳細はコードを参照してください.(こちらのコードは自由に利用,配布,改変して構いません.なお,一部,ネット上のコードを利用していますので,元ページのURLを記載してあります.元コードを直接公開しているので,GCPがONでないと開けない可能性があります.)

実はこのコードを実行するには Google Cloud Plathome (GCP) が ON になっている必要がありますが,通常のUECクラウドアカウントでは教員も学生もデフォルト設定はOFFになっていますので,GCPをONにしない限り実行できません.なお,個人のGoogleアカウントでは,通常利用可能ですので,個人アカウントで試していただくことはできます.(UECクラウドアカウントで自分でAPIを使ったコードを書かれる場合はGCPが必要ですので情報基盤センターにご相談ください.)

GCPの権限なしで,標準のUECクラウドアカウントの状態で,このスクリプトを実行する方法として,WebApp として実行することができます. Google Chrome ブラウザ上で, UECクラウドアカウントにログインした状態で,

 (通常の名簿)
もしくは
 (写真入り名簿)

をクリックしてください.なお,実行にはクラス名簿取得権限が必要なので,クラスの「教師」になっていないと,何も出力されません.これを実行すると,実行者のアカウントのClassRoomに対して処理を行います.その際,以下の権限をこのコードに与えことを承認しないと実行できませんので,その点,ご了承願います.(遠隔授業WGの提供コードなので,もしお使いの場合はご信頼頂ければ幸いです.一般に,書き込み権限は削除権限も含んでいますが,決して目的外の操作は致しませんので,ご安心ください.)

  • アプリに,ClassRoomへのアクセス権限を与える.
  • アプリに,GoogleDriveへの書き込み権限を与える.
  • アプリに,SpreadSheetの作成権限を与える.

正しく実行できていれば,ClassRoomStudentListというフォルダが作成され,その中にクラス名簿が生成されているはずです.

※Ver.2になって,名簿出力するクラスを選択可能になりました.(20/5/18) ※Ver.2.1(写真入り名簿)は名簿に学生がUECクラウドアカウントに登録している顔写真が入った「顔が見える名簿」が生成できます.通常名簿よりも生成に時間がかかります.(21/4/6)).

求む,便利スクリプト!

もし,スクリプト書いて,公開しても良い方がいらっしゃいましたら,こちらで紹介させていただきます.下のコメント欄からお願いします.

もしくは,自分では作れないけど,ClassRoomのこんなWebAppがあったら嬉しい,というのがありましたら,それも下のコメント欄からお願いします.実装できるかどうかわかりませんが,検討してみます.



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です