尝试使用StudentSubmissions。在Google应用程序脚本中修补Classroom API的一部分,并保持在该错误上运行
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开发人员控制台项目不允许发出此请求"。所以,现在我不确定格式是否正确,还有一些开发人员控制台的情况我还没有解决(尽管感觉我是正确的),或者新的格式是错误的,我只是得到了野生权限错误。
我看到了这个类似的错误,但如果课程作品是通过课堂而不是脚本正常创建的呢?啊。
指定更新掩码字段,稍后执行并指定文档中指示的名称("draftGrade"、"assignedGrade")
var studentSubmission = {'draftGrade':'88'}
var patchC = Classroom.Courses.CourseWork.StudentSubmissions.patch(studentSubmission, courseId, cwId, submissionId);
patchC.UpdateMask = "draftGrade";
var response = submisionObj.Execute();
根据您的错误,声明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()