Google Classroom API 修改附件

Ken*_*Ken 1 google-api google-classroom

courses.courseWork.studentSubmissions.modifyAttachments在Google Classroom API中执行该方法时,尝试将附件添加到学生提交中时返回403错误。

GoogleJsonResponseException:  
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "@ProjectPermissionDenied The Developer Console project is not permitted to make this request.",
    "reason" : "forbidden"
  } ],
  "message" : "@ProjectPermissionDenied The Developer Console project is not permitted to make this request.",
  "status" : "PERMISSION_DENIED"
}
Run Code Online (Sandbox Code Playgroud)

呼叫是从经过身份验证的学生帐户发出的,并被添加为链接资源。开发者控制台项目确实启用了 Google Classroom API,并且对 Google Classroom API 的其他调用工作正常,例如courses.listcourses.courseWork.studentSubmissions.get。我错过了什么?使用Try it!时返回相同的错误Google Classroom 文档站点中的应用程序。

Ken*_*Ken 5

修改作业/courseWork 或学生提交时,只有创建这些对象的开发人员控制台项目才能修改它们。这意味着只有创建了相应课程作业的项目才能对其进行修改,否则PERMISSION_DENIED返回403错误。通过检查associatedWithDeveloperGoogle Classroom 课程作业响应中的属性,您可以轻松确定课程作业项是否与发出请求的开发人员控制台项目相关联。


小智 5

我自己花了一段时间才弄清楚这一点,但我认为最好的方法是首先使用 Google 脚本或使用 Classroom API 创建课程作业(即作业或问题)本身。然后,课程作业将与正确的控制台项目相关联,并且您可以管理由此提交的内容。