首页 > 解决方案 > 使用 Google Classroom API 提交简答题

问题描述

我正在尝试SHORT_ANSWER_SUBMISSION通过courseworkGoogle Classroom API。

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

课程作业由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);

如何SHORT_ANSWER_SUBMISSION通过谷歌课堂 API 提交。可能吗??除了这个找不到别的了。

标签: google-apis-explorergoogle-classroom

解决方案


根据此处的课堂 API 文档:

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

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

如果你想执行一个PATCH请求,提交对象应该包含一个draftGradeassignedGrade但不是两个

参考


推荐阅读