You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在脚本端检查Google Classroom中标记为Excused的学生提交状态?

Google Classroom 作业「Excused」状态脚本检测方案

核心判断逻辑(基于现有字段组合)

由于官方暂未在StudentSubmission对象中添加明确的excused字段,可通过提交状态+成绩字段的组合来识别该状态:

  • 标记为Excused的提交,state会被设为"GRADED"
  • 同时assignedGrade和draftGrade均为null(未定义状态)

对应Google Apps Script代码示例:

function detectExcusedSubmissions(courseId, assignmentId) {
  const submissions = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, assignmentId);
  if (!submissions.studentSubmissions) return;

  submissions.studentSubmissions.forEach(sub => {
    const isExcused = sub.state === "GRADED" && sub.assignedGrade === null && sub.draftGrade === null;
    if (isExcused) {
      console.log(`学生ID ${sub.userId} 的提交已标记为Excused`);
    }
  });
}

备选方案:检查提交历史记录

部分场景下,可通过遍历submissionHistory字段,查找是否存在标记为Excused的操作记录(该字段内容可能因API版本或功能更新有所变化):

function checkExcusedFromHistory(courseId, assignmentId) {
  const submissions = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, assignmentId);
  if (!submissions.studentSubmissions) return;

  submissions.studentSubmissions.forEach(sub => {
    if (!sub.submissionHistory) return;
    const hasExcusedAction = sub.submissionHistory.some(history => 
      history.actionType === "EXCUSED" || history.description?.toLowerCase().includes("excused")
    );
    if (hasExcusedAction) {
      console.log(`学生ID ${sub.userId} 的提交已标记为Excused`);
    }
  });
}

长期解决方案

由于该状态暂未纳入官方文档,建议向Google Workspace开发者支持提交反馈,要求:

  • 在StudentSubmission对象中新增明确的excused布尔字段
  • 更新官方API文档,明确Excused状态对应的字段变化规则

内容的提问来源于stack exchange,提问作者Adam Pieroni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:12:47