0

尝试在 Google Apps 脚本中使用 Classroom API 的 StudentSubmissions.Patch 部分并在此错误中继续运行

updateMask:updateMask 只能包含“draftGrade”或“assignedGrade”

这是我针对该特定部分的代码:

var studentSubmission = {'draft_grade':'88'}
var patchC = Classroom.Courses.CourseWork.StudentSubmissions.patch(studentSubmission, courseId, cwId, submissionId);

我传递 StudentSubmission Resource 参数的方式显然有问题,但我不知道为什么......

这显然是我所指的文档 - https://developers.google.com/classroom/reference/rest/v1/courses.courseWork.studentSubmissions/patch

更新

我能够稍微更改代码以反映你们俩所说的内容。显然,我没有完全使用你们所说的内容,因为 KENdi 的示例是在 Python 和 Ein2012 中,它会在var patchC = Classroom...行上出错。

我改变了一些现在看起来像这样的东西:

var studentSubmission = {'draftGrade':'88'}
   var extra =  {'updateMask':'draftGrade'};
   var patchC = Classroom.Courses.CourseWork.StudentSubmissions.patch(studentSubmission, courseId, cwId, submissionId, extra);

但现在我得到一个不同的错误“@ProjectPermissionDenied The Developer Console project is not allowed to make this request”。所以,现在我不确定该格式是否正确并且我还没有解决一些开发者控制台情况(尽管感觉好像我是正确的),或者新格式是错误的,我只是获得了狂野的许可错误。

我看到了这个类似的错误,但是如果课程作业是通过课堂而不是通过脚本正常创建的呢?啊。

4

2 回答 2

1

指定更新掩码字段并稍后执行,并按照文档中的说明指定名称(“draftGrade”、“assignedGrade”)

var studentSubmission = {'draftGrade':'88'}
var patchC = Classroom.Courses.CourseWork.StudentSubmissions.patch(studentSubmission, courseId, cwId, submissionId);
patchC.UpdateMask = "draftGrade";


var response = submisionObj.Execute();
于 2016-07-21T12:21:11.733 回答
0

根据您的错误,说明updateMask必须只包含“ draftGrade”或“ assignedGrade”。因此,从您的代码中,您只需要 updateMask 的这两个值。

updateMask标识要更新学生提交的哪些字段。此字段是执行更新所必需的。如果指定了无效字段,则更新失败

在此文档中,该StudentSubmission资源有两个字段来存储成绩:assignedGrade,这是报告给学生的成绩,以及draftGrade,这是仅对教师可见的暂定成绩。这些字段使用courses.courseWork.studentSubmissions.patch包含适当字段的字段掩码进行更新。

这是有关如何执行此操作的示例代码。

studentSubmission = { 
'assignedGrade': 99, 
'draftGrade': 80 
} 
service.courses().courseWork().studentSubmission().patch( 
courseId=<course ID or alias>, 
courseWorkId=<courseWork ID>, 
id=<studentSubmission ID>, 
updateMask='assignedGrade,draftGrade', 
body=studentSubmission).execute()
于 2016-07-21T13:30:25.703 回答