正如下面的评论中提到的,如果只有学生可以转入某些内容,那么即使尚未上传,我也需要能够评分并返回作业。为了澄清,使用API进行了分配,我可以控制班级和学生。
正如下面的其他评论所述,即使您没有返回作业,学生仍会看到指定成绩,这符合此问题的目标。因此,不需要使用“课堂API”对作业进行分级,也不需要使用回合和返回。
有几个类似于这个的问题,但不完整,似乎没有具体的答案,所以我会尝试尽可能具体。我需要能够强制转入学生的作业,即使他们还没有这样做,然后进行评分,然后返回。使用下面的脚本,我收到两个错误。
一,"收到无效的JSON有效负载。未知名称" assignment_submission":无法找到字段。 (第15行,文件" GRADES CLASSROOM")"即使这是在课堂参考(https://developers.google.com/classroom/reference/rest/v1/courses.courseWork.studentSubmissions)。
二,当我尝试使用"返回"方法,(第二行代码)它返回错误"之后缺少名称。运营商。 (第17行,文件" GRADES CLASSROOM")"当我尝试保存代码时,强迫我在保存之前将其注释掉。我想很多人一直在寻找如何设置这个过程的答案。
function returnGrade () {
var submit ={assignedGrade: 80};
var upDate = {updateMask: 'assignedGrade'};
var resource1 = {
assignmentSubmission: {
addAttachments: [{
link:{
url: "URL"
},
}],
},
};
// Classroom.Courses.CourseWork.StudentSubmissions.turnIn(resource1, COURSE ID, WORK ID, "EMAIL");
Classroom.Courses.CourseWork.StudentSubmissions.patch(submit, COURSE ID, WORK ID, "EMAIL", upDate);
// Classroom.Courses.CourseWork.StudentSubmissions.return(resource1, COURSE ID, WORK ID, "EMAIL");
}
在下面的评论中,设置成绩的代码已经解决。我们只需要看看如何返回成绩。
答案 0 :(得分:1)
课程作业提交(作业,问题)只能由学生或使用他们的证书完成。我们可以为此OAoo但是如果您不想使用OAuth,那么请使用学生帐户转入课程作业,换句话说,使用学生帐户创建一个函数并执行另一个功能使用教师/域管理员帐户进行补丁/返回操作。
即使未使用patch
提交,也可以对学生课程作业进行评分。
以下代码“成功”地将成绩添加到一名学生。此时,我能够验证drafGrade是否已在Web UI上正确注册。
function doPatch(){
var courseId = '6915813348';
var courseWorkId = '11297534926';
var studentSubmissions = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, courseWorkId,{'userId':'someone@gmail.com'});
var id = studentSubmissions['studentSubmissions'][0].id;
var studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
Classroom.Courses.CourseWork.StudentSubmissions.patch(
studentSubmission,
courseId,
courseWorkId,
id,
{
'updateMask':'assignedGrade,draftGrade'
}
);
}
在学生作业视图中,教师和学生可以看到已分配的同学
在提交视图
上,老师可以看到draftGrade我做了一些研究和测试,发现了一些“有趣的东西”
错误消息
“操作员后缺少名字。”(第17行,文件“GRADES CLASSROOM”)“
看起来是由于在
中使用return
造成的
Classroom.Courses.CourseWork.StudentSubmissions.return(resource1, COURSE ID, WORK ID, "EMAIL");
发生错误是因为return
是JavaScript关键字。替代语法是
Classroom.Courses.CourseWork.StudentSubmissions["return"](resource1, COURSE ID, WORK ID, "EMAIL")
但这要求相关学生提交课程,否则Classroom API会抛出失败的前提条件错误。
<小时/> 我还没有完整的答案,但重要的是要记住,某些任务取决于可能是教师或学生的用户类角色,但不能同时取决于同一课程。
因此,为了进行作业提交,应该代表相应的学生调用相应的方法,并且为了返回作业,应该代表班级老师进行调用。
参考
来自Method: courses.courseWork.studentSubmissions.turnIn
这可能只有拥有指定学生提交的学生才能调用。
来自Method: courses.courseWork.studentSubmiss.return
只有包含所请求学生提交的课程的教师才可以使用此方法。