![見出し画像](https://assets.st-note.com/production/uploads/images/146822590/rectangle_large_type_2_b48455e3c7f6938ba813d1644b106e93.png?width=1200)
#119 クラスカードを並べ替えたい →できませんでした
寄せられた質問
以下のような質問が寄せられました。
現在、膨大になっているクラスルームの並べ替えに非常に苦慮しております。なんとかGASを利用してできないかと試行錯誤しておったのですが、当方初心者なもので途方に暮れているところでした。そこで、ぜひ、GASのネタとして取り扱っていただきたいです。ご検討よろしくお願いいたします。
以下のヘルプ記事で説明されている Google Classroom のクラスカードについての話なのだと解釈しました。面白そうなネタなので、実現可能なのか少し調べてみました。
提供されている API
Google Classroom を制御するための API(Application Programming Interface の略で、ざっくりと命令と置き換えてもいいかも?)として公開されているものは、以下 URL で確認できます。
提供されている機能は、
コース → courses
エイリアス → courses.aliases
招待 → invitations
学生 → courses.students
教師 → courses.teachers
ユーザー プロフィール → userProfiles
コースの課題 → courses.courseWork
トピック → courses.topics
生徒からの提出物 → courses.courseWork.studentSubmissions
といった感じで、ここでの「コース(courses)」がクラスを扱うものになります。
クラスに対する API は?
現時点で、このクラスに対して提供されている API(この場合はメソッド)は、下図のような感じです。
![](https://assets.st-note.com/img/1720608878687-oOc5uLw8y7.png?width=1200)
リファレンスのページ左側の表示を見ていると、↑ の図にはないメソッドも表示されているように見受けられますが、
![](https://assets.st-note.com/img/1720608986597-GaFth6CPR9.png)
メソッド名が checkAddOnCreationEligibility というのは、有償版に提供されている Google Classroom のアドオンに関するものと考えられるので、今回の目的としている処理には関係ありません。
メソッド名に GradingPeriods が含まれているのは、有償版に提供されている「採点期間を作成または編集する - Classroom ヘルプ」に関するものと考えられるので、今回の目的としている処理には関係ありません。
クラスの一覧を取得(list メソッド)
list メソッドを利用すれば、クラスについての情報を取得できます。
このようなメソッドの挙動は、GAS のプログラムを作成しなくても、Web ブラウザ上から動作を確認できます。
ページ右側に表示されているペインで「API(API Explorer)」を選択すると、その API を実行するために必要なパラメータを入力するフィールドが表示されます。
そのフィールドに目的に沿った値を設定して、画面下部にある「Execute」ボタンを押すと結果が得られます。
![](https://assets.st-note.com/img/1720610118496-h5x2KHBwrm.png?width=1200)
しかしながら、
参加しているクラスの一覧は取得できるが、「教師」と「生徒」のそれぞれで参加しているクラスを別々に取得しなければならない。
studentId と teacherId を両方とも空欄にすると、自身が「教師」として参加しているクラスの一覧が取得できる。 ※teacherId に me と設定したのと同じ。
studentId と teacherId を両方に me と指定すると、何も取得できない。
list メソッドで得られるクラスの順番は、クラスカードが表示されている順序と同じかも?
list メソッドでは、それぞれのクラスに対して「REST Resource: courses」の内容が得られるものの、この中にクラスカードとして表示される順序は含まれていない。
といった感じなので、
クラスに対する役割が「教師」と「生徒」それぞれの表示順しかわからないため、参加しているクラス全体での表示順がわからない。
クラスの情報を更新するためには、update メソッド/patch メソッドを使うことになるが、更新内容を指定するための「REST Resource: courses」には表示順に相当する内容が含まれていない。
という結論になってしまいます。
まとめ
GAS を用いることで、UI によって操作している内容をプログラムによって自動化できるものの、目的の Google のアプリやデータを扱うための API が提供されていないことには、手が出せません。
今回の目的であった Google Classroom のクラスカードについての API は、現状では提供されていないようなので、今後の API の機能追加によって実現できる可能性は残されているものの、「現時点では実現できません」というのが結論になります。
この記事が気に入ったらサポートをしてみませんか?