見出し画像

#02 作成されているクラスを確認する

Facebook の「Google for Education 研究グループ」で、

ドメイン内に作成されているクラスを確認する方法はないか?

といった質問があったので、以下のようなスプレッドシート+GASを作成してみました。

作成したスプレッドシート

導入の仕方

https://docs.google.com/spreadsheets/d/1o57OO9QH5Cy8M84voq9oINEplDSwvwOdkPIDTqUpr1w/copy

上記の URL にアクセスすると、自身の Google ドライブにスプレッドシートをコピーします。

ドキュメントのコピー

コピーしたスプレッドシートでスクリプトを実行するときには、それなりの権限を要するので、特権管理者で、実行してください。 ※特権管理者以外のアカウントで実行した場合、自身が参加しているクラスしか一覧表示されません。

はじめて実行するときには、API を利用した GAS のスクリプトを実行するために、実行するためのアカウントやどこまでの情報にアクセスするかの確認が求められます。
この辺りの操作は、別の記事にまとめてあるので「#01 GAS のスクリプトを実行するときに...|ともかつのノート|note」をご覧ください。

スクリプトの中で、どのような処理をしているかについては、記事の終わりに貼り付けてあるソースや、実際のスクリプトをご覧ください。

使い方

実際の使い方ですが...

「クラスの一覧」ボタンを押すと、ドメイン内のクラスを列 A ~ C に書き出します。ドメイン内に作成されているクラス数によって、処理に要する時間が前後しますが、この処理は GAS の実行時間制限である 30分まではかからずに終了すると思います。

列A : クラスを識別する ID ※普段の使用では目にしない
列B : クラスの名称
列C : クラスの状態 ※現状のスクリプトでは、ACTIVE のみが対象

「生徒を数える」ボタンを押すと、列 D ~ F に以下の情報を書き出し。この処理はクラスに参加している生徒数によっても時間がかかります。

列D : クラス所有者のメールアドレス
列E : 当該クラスのクラス コード(enrollmentCode)
列F : 当該クラスに参加している生徒数

前項の処理に時間がかかりすぎて、GAS の実行時間制限にひっかかるようであれば、セル G1 に処理を再開する行番号を入力します。再度「生徒を数える」ボタンを押すことで、前項の処理を継続します。

「確認結果をクリア」ボタンを押すと、列 A ~ F をクリアします。

実際に作成した GAS のスクリプトは、以下のような感じです。「クラスの一覧」には ListAllCourses、「生徒を数える」には CourseStudents、「確認結果をクリア」には checkClear、のスクリプトが割り当ててあります。

所属している組織でどのように利用されているかの把握のために作成したものを、冒頭の質問に対応できるよう変更したものですが、以下の点に留意してお使いください。

  • 一応の動作確認は行っているものの、不慮のトラブルによって損害等が生じても、責任はとれませんので予めご了承ください。

  • スクリプトを見ていただければわかりますが、Classroom の API では情報を参照しているだけで、変更は行っていません。

  • スプレッドシートへの書き出しを行っているだけで、スプレッドシート以外への情報の書き出しや収集などは行っていません。

  • 特別なエラー処理は行っていないので、意図しないケースでエラーが発生してしまうかもしれません。どうにもならない場合には、ご連絡ください。

このスプレッドシート+GAS が役に立てば、幸いです。

追記

2022/04/20

このプログラムは、API を単純にゴリゴリと呼び出しているだけなので、処理に時間がかかっています。内部処理を見直したものを、以下のように公開し直していますので、興味のある方はこちらもご覧ください。

2023/01/21

組織内に大量のクラスが作成されている場合でも、実行時間の制限を回避して、一度に処理できるようにしたプログラムです。

この記事が気に入ったらサポートをしてみませんか?