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

使用Google Classroom API与Apps Script修改成绩遇权限问题求助

解决Google Classroom API修改成绩时的ProjectPermissionDenied错误

我无法通过Google Classroom API修改成绩。运行代码时,第2、3行可正常执行,但第4行报错:@ProjectPermissionDenied The Developer Console project is not permitted to make this request。查看项目属性中的权限范围后,我发现自己正通过容器绑定脚本(表格)访问个人Google Classroom,按逻辑能访问作业就应能修改成绩,却遭遇权限问题。

我来帮你排查这个权限问题——这个ProjectPermissionDenied错误在容器绑定脚本的场景里确实容易踩坑,虽然能访问作业,但修改成绩需要额外的权限配置和验证,咱们一步步来解决:

1. 确认权限范围是否覆盖成绩修改

首先得确保你的脚本已经申请了正确的OAuth权限范围,修改成绩需要的是下面其中一个:

  • https://www.googleapis.com/auth/classroom.grades(完全控制课程成绩)
  • 或者更受限的https://www.googleapis.com/auth/classroom.coursework.students(仅修改学生作业相关的成绩数据)

操作步骤:

  • 打开脚本编辑器,点击右上角的「设置」图标
  • 勾选「显示appsscript.json清单文件」
  • 打开这个文件,检查oauthScopes数组里是否包含上述权限
  • 如果没有,添加后保存,然后重新授权脚本(点击「运行」,会弹出授权提示,重新完成授权流程)

2. 检查容器绑定脚本的GCP项目关联

容器绑定脚本默认会用一个自动生成的GCP项目,但这个默认项目的权限经常会受限,尤其是个人账号使用时。建议手动关联你自己创建的GCP项目:

  • 在脚本编辑器里点击「资源」>「云平台项目」
  • 输入你自己在GCP控制台创建的项目编号,完成关联
  • 然后去GCP控制台,确认Google Classroom API已经启用,并且在「OAuth同意屏幕」里已经添加了成绩相关的权限范围

3. 验证你在Classroom课程中的角色

API权限配置对了还不够,你的Google账号在目标课程里必须是教师或课程所有者角色——只有这两个角色才有修改学生成绩的权限。你可以去Classroom网页端,进入课程的「人员」页面,确认自己的角色是否符合要求。

4. 检查成绩修改的API调用代码

最后再排查下第4行的代码是否正确,比如是否传对了courseId、courseWorkId、studentSubmissionId,以及请求体的格式是否符合API要求。举个正确的patch调用示例:

Classroom.Courses.CourseWork.StudentSubmissions.patch(
  { assignedGrade: 85 }, // 要修改的成绩值
  "你的课程ID",
  "作业ID",
  "学生提交记录ID"
);

注意:如果用patch方法,只传需要修改的字段就行,别带多余参数,避免触发额外的权限校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:51:59