2

在 Google Classroom API 中执行该courses.courseWork.studentSubmissions.modifyAttachments方法时,当我尝试将附件添加到学生提交的内容时返回 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"
}

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

4

3 回答 3

5

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

于 2016-07-12T18:59:03.480 回答
4

我自己花了一段时间才弄清楚这一点,但在我看来,最好的方法是首先使用 Google Script 或使用 Classroom API 创建课程作业(即作业或问题)。然后,课程作业与正确的控制台项目相关联,您就可以从那里管理提交的内容。

于 2018-02-28T23:24:13.560 回答
1

如果最终用户不满足访问的先决条件,所有 Classroom API 方法都可能返回PERMISSION_DENIED (HTTP 403)错误。错误随附的消息包含一条错误消息,可帮助您确定原因并指导用户采取适当的措施。

ProjectPermissionDenied 表示请求试图修改与不同开发者控制台项目关联的资源。

可能的操作:表明您的应用程序无法发出所需的请求。它只能由创建资源的OAuth 客户端 ID的开发者控制台项目进行。

于 2016-07-13T06:59:14.353 回答