当前位置: 首页 > 知识库问答 >
问题:

我可以用谷歌课堂API给“以学生身份登录”的作业打分吗?

羊昊苍
2023-03-14

当(以学生身份登录)我交作业,但我想包括一个初稿成绩。

对于如何自动设置投稿的等级有什么想法吗?

共有1个答案

逑阳泽
2023-03-14

我认为这是不可能的:您不能以学生权限更新draftGrade。

您可以做的:

  1. 从“学生”会话中,在应用程序数据库中保存与提交ID关联的草稿成绩。
  2. 从“teacher”会话以及“teacher”权限中,您可以从应用程序数据库中获取等级,然后我调用路径查询来设置draftgrade。
    func executeQuery_GradeSubmission(studentSubmission: GTLRClassroom_StudentSubmission) -> GTLRServiceTicket? {
        guard let courseID = self.myClassroom?.courseID,
              let courseWorkID = self.selectedCourseWorkID else { return nil }

        if let grade = self.gradesForSelectedWorkID?[studentSubmission.identifier!] {
            studentSubmission.draftGrade = NSNumber(floatLiteral: Double(grade))
        }
        
        let query = GTLRClassroomQuery_CoursesCourseWorkStudentSubmissionsPatch.query(withObject: studentSubmission,
                                                                                      courseId: courseID,
                                                                                      courseWorkId: courseWorkID,
                                                                                      identifier: studentSubmission.identifier!)
        query.updateMask = "draftGrade"
        return self.myClassroom?.service.executeQuery(query,
                                                      delegate: self,
                                                      didFinish: #selector(displayGradeSubmissionResult(ticket:finishedWithObject:error:)))
    }
    
    @objc func displayGradeSubmissionResult(ticket: GTLRServiceTicket, finishedWithObject: GTLRObject, error: Any?){
        let classroomSubmissionResponse = finishedWithObject as? GTLRClassroom_StudentSubmission
        
        if let classroomError = error as? NSError {
            print("displayGradeSubmissionResult. ERROR: \(classroomError.description)")
            // TODO: inform something went wrong
        } else {
            if let submissionItems = self.classroomSubmissionsResponse?.studentSubmissions {
                for submissionItem in submissionItems {
                    if submissionItem.identifier == classroomSubmissionResponse?.identifier {
                        submissionItem.draftGrade = classroomSubmissionResponse?.draftGrade
                    }
                }
            }
        }
    }

 类似资料:
  • 对于我正在开发的谷歌应用程序脚本,我需要过滤掉那些迟交的学生提交来降低他们的成绩。 根据Google的文档,我假设这是通过使用classroom.courses.coursework.studentsubmissions.list得到的,但我不知道如何将late参数应用到列表中,以便只得到迟交作业的人。

  • 我是谷歌教室api新手,我想在本地机器上创建一门课程。我能不能做?如果创建,那么如何使用javascript?在我尝试时,代码出错= 在我的代码中,我使用函数create课程()来创建一个新的课程。 我的代码如下所示 请回复我。。。。。。。。。。

  • 在下面的注释中,已解析设置薪等的代码。我们只需要看看如何返回等级就可以了。

  • 有1个域分别有一个子域-school.com和students.school.com。 我已经为每个班级创建了谷歌课堂使用谷歌应用程序脚本。 运行函数时,出现此错误,

  • 再现的步骤: 以教师身份在Google课堂UI中创建课程作业 作为教师,获取一个oauth2令牌 以教师身份调用Google课堂API(补丁/v1/courses/:courseID/coursework/:assignmentD/studentsubmissions/submissionID) 这将触发403权限错误:@ProjectPermissionDenied开发人员控制台项目不允许发出此

  • 我有一个谷歌表格,上面填写了学生姓名和纸质表格的状态。如果缺少纸质表格,我需要给家长发电子邮件让他们填写。但每次我发这封邮件,我得到的第一个问题是,我的孩子不是已经完成并存档了这份表格吗? 所以我想创建一个谷歌表单,家长可以输入他们学生的名字,它将显示是否有完成的文书工作。 我可以找到如何预填充表单,但这不是我想要的。我需要它根据家长输入的信息显示响应。