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

使用Google Apps Script调用Classroom patch接口更新作业状态报错如何解决

问题根因与解决方法

第一个报错(updateMask is required)原因

updateMask是patch方法的入参,不是接口返回对象的属性,第一种写法在调用接口后才给返回值赋值updateMask,API无法接收该参数,因此触发必填校验报错。

第二个报错(ProjectPermissionDenied)原因

存在两个核心问题:

  • 代码存在变量名拼写错误:changeState函数定义的作业ID参数为assingId,调用patch方法时传入的是assID,大小写不匹配导致传入了无效的作业ID,触发权限类报错。
  • OAuth授权范围不足,或者关联的Google Cloud项目Classroom API配置异常。

正确可运行代码

function publicarBorradores() {
  const courseId = "320315007220";
  const assingId = "320315007244";
  const updateBody = {
    state: "PUBLISHED"
  };
  // updateMask作为第四项可选参数传入
  Classroom.Courses.CourseWork.patch(updateBody, courseId, assingId, {
    updateMask: "state"
  });
}

权限排查步骤

  • 打开Apps Script项目的「项目设置」,勾选「在appsscript.json清单中显示"appsscript.json"编辑器」,回到编辑器打开该文件,确认oauthScopes字段包含以下必要权限:
"oauthScopes": [
  "https://www.googleapis.com/auth/classroom.coursework",
  "https://www.googleapis.com/auth/classroom.courses"
]
  • 运行一次修正后的函数,在弹出的授权窗口中选择你作为班级所有者的Google账号,授予对应的Classroom编辑权限。
  • 进入关联的Google Cloud项目,搜索「Classroom API」,确认API状态为已启用,若已禁用重新开启即可。

内容的提问来源于stack exchange,提问作者Joaquin Pagliettini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:36:02