2025年5月4日日曜日

Google Classroom APIでクラス内にある課題を取得してみる


Classroomの授業の中にある「課題」を取得してみたときのコードです

今回は授業の中に「課題」「テスト付きの課題」「質問」「資料」が保存されている状態で実行してみます


下記 Code.gs のcourseId を自身の環境に合わせて書き換えて

listAllCourseWorkAssignments() を実行すると

PUBLISHED または DRAFT 状態の「課題」と

「テスト付きの課題」のタイトル, ID, 状態がログに出力されます




Code.gs
function listAllCourseWorkAssignments() {
const courseId = '776967326029'; // クラスIDを指定

const courseWorkList = Classroom.Courses.CourseWork.list(courseId, {
courseWorkStates: ['PUBLISHED', 'DRAFT']
});
Logger.log('=== 課題(CourseWork) ===');
if (courseWorkList.courseWork) {
courseWorkList.courseWork.forEach(work => {
Logger.log(`タイトル: ${work.title}, ID: ${work.id}, 状態: ${work.state}`);
});
} else {
Logger.log('課題はありません。');
}
}




Tips

「テスト付きの課題」は現状 API 経由では作成できなかったため

 Classroom の画面上で追加しました


作成したサンプルを下書きで保存しています



ちなみに「テスト付きの課題」は
英語版では「Quiz assignment」です



「テスト付きの課題」はClassroomの画面上では「課題」と区別されていますが

APIではどちらも同じ CourseWorkType である ASSIGNMENT として扱われています

そのためAPIを利用して取得する場合は

「テスト付きの課題」も「課題」として取得されるようです