在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"
}
呼叫是通过经过身份验证的学生帐户进行的,并被添加为链接资源。 Developer Console项目已启用Google Classroom API,其他对Google Classroom API的调用工作正常,例如courses.list
和courses.courseWork.studentSubmissions.get
。我错过了什么?使用Google Classroom文档网站中的{{3}}应用时会返回相同的错误。
答案 0 :(得分:3)
修改assignments / courseWork或student提交时,只有创建这些对象的Developer控制台项目才能修改它们。这意味着只有创建相应课程的项目才能修改它们,否则会返回403 PERMISSION_DENIED
错误。通过检查Google课堂课程工作响应中的associatedWithDeveloper
属性,您可以轻松确定课程工作项是否与发出请求的开发者控制台项目相关联。
答案 1 :(得分:2)
我花了一段时间才弄清楚这一点,但在我看来,最好的方法是首先使用Google Script或使用Classroom API创建课程作业(即作业或问题)。然后课程与正确的控制台项目相关联,您就可以从中管理提交的内容。
答案 2 :(得分:0)
如果最终用户不符合访问的先决条件,则所有Classroom API方法都可能返回PERMISSION_DENIED (HTTP 403)错误。错误附带的消息包含一条错误消息,可帮助您确定原因并指导用户采取适当的措施。
ProjectPermissionDenied表示请求尝试修改与其他Developer Console项目关联的资源。
可能的操作:表明您的应用程序无法提出所需的请求。它只能由创建资源的OAuth client ID的Developer Console项目创建。