Google App Script(GAS)でスプレッドシートを使ってGoogle Classroomに課題を作る
Google App Script(GAS)でスプレッドシートを使って、Google Classroomに課題を作成します。
前回は、GASを使って課題を1つ作ってみるというのをやりました。今回は、複数の課題を一気に準備するため、スプレッドシートを使って課題作成をしていきます。
GASで課題を作成する手順
スクリプトの説明です。前回は、プロパティーごと、コード内に入力していましたが、今回はこの部分をスプレッドシートから読み込みます。
各プロパティーの説明です。
- title: 課題のタイトルです
- description: 課題の詳細です
- materials: 今回はドライブからドキュメントを添付し、生徒にコピーを配布します
- state: 課題のステータス、draftとします
- maxPoints: 課題の点数に入る数字です
- workType: 課題のタイプ、ASSIGNMENTを入力して課題とします
- topicId: 課題を投稿したいトピックを指定します
- fileId: 配布するファイルのIdです
2行目の「Id」にデータを読み込むスプレッドシートの Id、下から4行目にコースIDを入力します。
ファイルの Idは以下で確認できます。
コースIDは以下を参照してください。
「Google App Script(GAS)でクラスの courseIdを確認する方法」
function createCourseWorkSpreadsheet() {
var sheet = SpreadsheetApp.openById('Id');
var values = sheet.getDataRange().getValues();
values.shift();
var array = values;
for (var i in array) {
var assignment = {
title: array[i][0],
description: array[i][1],
materials: [{
"driveFile": {
"driveFile": {
"id": array[i][7]
},
"shareMode": 'STUDENT_COPY',
}
}],
state: array[i][2],
maxPoints: array[i][3],
workType: array[i][4],
topicId: array[i][5],
}
var assignment = Classroom.Courses.CourseWork.create(assignment, 'courseId')
Logger.log('CourseWork created: %s (%s)', assignment.title, assignment.workType)
}
}
スプレッドシートを用意する
スプレッドシートを用意します。一番上の行に項目を設定し、下にプロパティーの内容を入れていきます。項目は、左から以下の順です。
- title
- description
- state
- maxPoint
- workType
- topicId
- link url
- fileId
link urlは、外部リンクを添付する際に使用できます。今回は空欄にしています。
スクリプトを実行する
準備ができたら、スクリプトを実行してみましよう。「保存」ボタンで保存したら「実行」ボタンで実行します。
実行ログです。7週分の課題が6秒で設定できました。
クラスを開いてみます。各週ごとに課題が設定されているのがわかります。
まとめ
トピックの設置までは、あまり大きなメリットを感じませんでしたが、課題をGASで設定してみると、スクリプトで実施するメリットを十分に感じられます。
手動で行うと登録に時間がかかるだけでなく、操作ミスなどで手戻りが発生することも多くありました。スクリプトでは、早く正確な操作ができるところがいいですね。
次回からは、課題のバリエーションをいろいろと試していきたいと思います。