Google App Script(GAS)でGoogle Classroomに課題を作る
Google App Script(GAS)でGoogle Classroomに課題を作成します。
ここまで、GASを使ってGoogle Classroomにクラスを作り、「授業」タブにトピックを作成しました。今回は、課題の作成にチャレンジします。課題には、いくつかのパターンがあります。
- 課題として生徒にドキュメント、スプレッドシートなどをGoogleドライブから配布する
- 課題の資料としてYouTubeの動画や、外部サイトのリンクを配布する
- 課題としてGoogleフォームのテストなどを配布する
また、Googleドライブからの配布には、以下の3つのパターンがあります。
- 生徒は共有ファイルを表示できます
- 生徒は共有ファイルを編集できます
- 各生徒が自分専用の共有ファイルのコピーを持っている
さらに、GASで作成をする際には、「質問」(記述式、選択式問題)もCourseWorkとして、課題と同様に扱われています。
いくつかのパターンがある中から、今回は「課題を作成し、生徒にスプレッドシートのコピーを配布し、作業後に提出させて回収する」という前提で課題を作成したいと思います。
GASで課題を作成する手順
1.単純に課題を1つ作成してみます。下記のスクリプトの解説です。
- title: 課題のタイトルです
- description: 課題の詳細です
- materials: 添付するコンテンツです
今回はdriveFileとしてスプレッドシートを添付します。
IdとしてスプレッドシートのId、shareModeのSTUDENT_COPYは文字通り「コピーを配布」です
- stete: 課題のステータス、draftは「下書き」です
- maxPoint: 課題の点数に入る数字です
- workType: 課題のタイプ、ASSIGNMENTは課題を意味します
- topicId: トピックを指定して投稿できます
function createCourseWork() {
var assignment = {
title: '第1週 基本課題',
description: '第1週の基本課題です',
materials: [{
"driveFile": {
"driveFile": {
"id": 'Id'
},
"shareMode": 'STUDENT_COPY',
}
}],
state: 'draft',
maxPoints: 3,
workType: 'ASSIGNMENT',
topicId: 'topicId',
}
var assignment = Classroom.Courses.CourseWork.create(assignment, 'courseId');
Logger.log('CourseWork created: %s (%s)', assignment.title, assignment.workType)
}
補足情報
各プロパティーには以下の選択肢があります。
shareMode
- View / 共有ファイルを表示できる
- Edit / 共有ファイルを編集できる
- STUDENT_COPY / コピーを配布
materials
- driveFile / Googleドライブのファイル
- youtube / VideoYouTube
- link / 資料をリンク
- form / Googleフォームの資料
workType
- ASSIGNMENT / 課題
- SHORT_ANSWER_QUESTION / 記述式問題
- MULTIPLE_CHOICE_QUESTION / 選択式問題
2. 入力したら「保存」ボタンで保存し、「実行」ボタンで実行します。「Ctrl (MacはCommand) + S」で保存し、「Ctrl(Command) + R」で実行できます。
3. 実行ログです。課題が作成されました。
4.課題を開いてみると以下のようになりました。ここまで出来れば言うことなしです。期限も、スクリプトで設定ができます。
まとめ
だいぶ温めていたのですが、やっと課題作成を記事にすることができました。課題の作成が1つということはあまりないと思いますので、次回は複数の作成にチャレンジします。
複数といえば、やはりスプレッドシートは外せません。スプレッドシートを使って複数の課題を一気に作成する方法をご紹介する予定です。