【问题标题】:Short Answer Submission Using Google Classroom API使用 Google Classroom API 提交简答题
【发布时间】:2020-12-09 17:04:27
【问题描述】:

我正在尝试通过 Google Classroom API SHORT_ANSWER_SUBMISSION 获取 coursework

对于课程的补丁请求,用户必须在同一域下,并且必须具有编辑内容的权限。已满足所有条件。

课程作业由teacher@domain.com 发布,SHORT_ANSWER_SUBMISSION 由 student@domain.com 完成

但它会返回

        "status": 500,
        "type": "Google_Service_Exception",
        "messages": [
            "{\n  \"error\": {\n    \"code\": 400,\n    \"message\": \"updateMask: updateMask may only contain \\\"draftGrade\\\" or \\\"assignedGrade\\\".\",\n    \"errors\": [\n      {\n        \"message\": \"updateMask: updateMask may only contain \\\"draftGrade\\\" or \\\"assignedGrade\\\".\",\n        \"domain\": \"global\",\n        \"reason\": \"badRequest\"\n      }\n    ],\n    \"status\": \"INVALID_ARGUMENT\"\n  }\n}\n"
        ]
    }

当老师通过相同的 api 提交 assigedGrade 或 DraftGrade 时应该给出哪个

这是我的提交对象

Google_Service_Classroom_StudentSubmission {#1362
  #collection_key: "submissionHistory"
  +alternateLink: null
  +assignedGrade: null
  #assignmentSubmissionType: "Google_Service_Classroom_AssignmentSubmission"
  #assignmentSubmissionDataType: ""
  +associatedWithDeveloper: null
  +courseId: null
  +courseWorkId: null
  +courseWorkType: null
  +creationTime: null
  +draftGrade: null
  +id: null
  +late: null
  #multipleChoiceSubmissionType: "Google_Service_Classroom_MultipleChoiceSubmission"
  #multipleChoiceSubmissionDataType: ""
  #shortAnswerSubmissionType: "Google_Service_Classroom_ShortAnswerSubmission"
  #shortAnswerSubmissionDataType: ""
  +state: null
  #submissionHistoryType: "Google_Service_Classroom_SubmissionHistory"
  #submissionHistoryDataType: "array"
  +updateTime: null
  +userId: null
  #internal_gapi_mappings: []
  #modelData: []
  #processed: []
  +"shortAnswerSubmission": Google_Service_Classroom_ShortAnswerSubmission {#1363
    +answer: "abc"
    #internal_gapi_mappings: []
    #modelData: []
    #processed: []
  }
}

我用了这个方法

$data = $request->all();
$client = setGoogleClient(getOAuthToken());
        $class = new \Google_Service_Classroom($client);
$submission = setShortAnswerSubmission($data);
$response = $class->courses_courseWork_studentSubmissions->patch($courseId, $courseWorkId, $id, $submission);

如何通过谷歌课堂 API 提交SHORT_ANSWER_SUBMISSION。是否可以??除了这个,找不到其他的了。

【问题讨论】:

    标签: google-apis-explorer google-classroom


    【解决方案1】:

    根据 Classroom API 文档here

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

    因此,您收到的错误消息是不言自明的

    如果您要执行PATCH 请求,则提交对象应包含draftGradeassignedGrade,但不能两者都包含

    参考

    【讨论】:

    • 我知道,当老师更新成绩时,我必须在 updateMask 中使用 DraftGrade 和assignedGrade 但我想通过学生帐户/ID 提交简短的答案,在这种情况下,不应该询问此更新掩码要求
    • 如果你想提交作业,你不应该使用 patch 请求来更新提交 - 你应该使用像 here 这样的 post 请求。
    • 我要提交“SHORT_ANSWER_SUBMISSION”
    猜你喜欢
    • 2020-01-30
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多