Classroom のAPI で課題の採点をする場合:
基本的には課題を作成した Oauthクライアントで実行します
対象の課題が Apps Script で作成された場合:
- 作成した時と同じ Apps Script プロジェクト経由でのみ採点できる
- 異なる Apps Script プロジェクトでは採点する権限がない
- 以下のようなエラーになる
- API call to classroom.courses.courseWork.studentSubmissions.patch failed with error: @ProjectPermissionDenied The Developer Console project is not permitted to make this request.
Classroom に手動で作成した課題の場合:
- API で採点できない
下記 Code.gs の courseId, courseWorkId, targetStudentUserId を自身の環境に合わせて書き換えて
課題を作成したときと同じ OAuthクライアントで
gradeSubmission() を実行すると
grade の値が課題の点数のフィールドに入ります
grade の値が課題の点数のフィールドに入ります
Code.gs
function gradeSubmission() {
const courseId = "699141862609"; // クラスID
const courseWorkId = "699240702520"; // 課題ID
const targetStudentUserId = "1234567890"; // 生徒のuserId
const grade = 6; // 一括してスコア設定
try {
const response = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, courseWorkId);
const submissions = response.studentSubmissions;
if (!submissions || submissions.length === 0) {
Logger.log('提出物がありません。');
return;
}
const targetSubmission = submissions.find(submission => submission.userId === targetStudentUserId);
if (!targetSubmission) {
Logger.log('指定された生徒の提出物が見つかりませんでした。');
return;
}
const submissionId = targetSubmission.id;
Logger.log(`見つかった提出物ID: ${submissionId}`);
// ここでgradeを使って設定!
const patchBody = {
assignedGrade: grade,
draftGrade: grade
};
const updatedSubmission = Classroom.Courses.CourseWork.StudentSubmissions.patch(
patchBody,
courseId,
courseWorkId,
submissionId,
{ updateMask: "assignedGrade,draftGrade" }
);
Logger.log(`採点成功!付けた点数: ${updatedSubmission.assignedGrade}`);
} catch (e) {
Logger.log('採点失敗: ' + e.message);
}
}

Reference
Resource: CourseWork
https://developers.google.com/workspace/classroom/reference/rest/v1/courses.courseWork#CourseWork
REST Resource: courses.courseWork.studentSubmissions
Method: courses.courseWork.studentSubmissions.patch
Manage student responses
Manage OAuth Clients