見出し画像

#30 課題の提出状況を確認する

Facebook のグループで

課題を出した人だけの名簿を作成するのも可能ですか?(クラスルームには、入っているが課題を提出していない人を省きたいのです。)

https://www.facebook.com/groups/google4education.jp/posts/3091886994356215/

という声があったので、別の記事で作成したスクリプトをもとにして、課題の提出状況を確認するスクリプトを作成してみました。

出力される内容は「Google Classroom」の UI で確認できる内容と変わりないと思いますが、表として一覧出力できることで他への活用ができるかもしれません。

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

この記事は、「はてなブログ」に 2022/01/30 に投稿したものを移転させたものです。note に移転する際に、細かな部分で変更してある部分もあります。

作成したスクリプト

今回作成したスクリプトの使い方は、スプレッドシート内にも説明を記載しておきましたが、以下のような感じです。

  1. セル B1「教師アカウント」にクラスの教師のアカウントを入力します。
    「アカウントの確認」ボタンを押すと、スクリプトを実行しているアカウントを B1 に設定するので、ほとんどの場合は「アカウントの確認」ボタンを押せば大丈夫でしょう。自身のアカウント以外を指定する場合には、相応の権限が必要になります。

  2. ボタン「参加クラスの取得」を押すと、7行目以降の作業域に、教師として参加しているクラスが一覧表示されます。

  3. セル B2「courseId」に、前項 2. で得られた結果から、一覧を作成するクラスの ID をコピー&ペーストします。

  4. 「課題の一覧を取得」ボタンを押すと、7行目以降の作業域に、B2 のクラスに作成されている課題が一覧表示されます。

  5. セル B3「courseWorkId」に、前項 4. で得られた結果から、提出状況の一覧を作成する ID をコピー&ペーストします。

  6. 「提出状況を作成」ボタンを押すと、指定された課題の提出状況が別シートに作成されます。

別シートに出力される内容は、次の Classroom API から得られる内容から、必要と思われるものを抜粋して加工せずにそのまま出力しています。

API から得られる情報の凡例については、スプレッドシート内にも転載しておきました。リファレンスでは英語でしか説明されていないので、DeepL翻訳 で翻訳した説明を併記しておきました。

処理を行いたいアカウントでログインした状態で、以下の URL にアクセスして、自身のマイドライブに作業用のスプレッドシートをコピーしてください。

https://docs.google.com/spreadsheets/d/1HszZxOWCOy_R1ODWIjKbh0wgi2iqqFVnCn2tO-Zvo6U/copy

スクリプトの初回実行時には、実行するアカウントによる確認作業が必要になります。詳しくは以下の投稿をご覧ください。

スクリプトのカスタマイズについて

  • 出力されるデータの順序は、API から得られるデータを順に出力しているだけなので、意図した順番にはなっていない場合には、自身で意図した順番に並び替えてください。

  • 今回のスクリプトは、汎用性を持たせるために、前述の Classroom API で得られる情報のうち、必要と思われるものを抜粋して出力しています。
    表示される項目が不足している場合には、上記の「Resource: CourseWork」と「Resource: StudentSubmission」の内容であれば、スクリプト中で取得しているものの表示していないだけなので、簡単に追加できると思いますので、ご自身でカスタマイズください。

最後に

最後に、お決まりのフレーズなどを書いておきます。

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

  • コメントを含めても 300行程度のスクリプトであり、実行に際して目的外の場所への書き出しや収集などは行っていません。

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

わたし自身にしてみると、このような「スクリプトを作ること」が目的になっているような感じですが、このスクリプトが何かの役に立てば幸いです。


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