我正在尝试通过 Google Classroom API
SHORT_ANSWER_SUBMISSION
获得 coursework
。
对于课程的补丁请求,用户必须位于同一域下,并且必须具有编辑内容的权限。所有标准均已满足。
课程作业由 [电子邮件受保护] 发布,并且
SHORT_ANSWER_SUBMISSION
是由 [电子邮件受保护] 完成
但它又回来了
"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);
如何通过Google Classroom API提交
SHORT_ANSWER_SUBMISSION
。是否可以??除了这个找不到其他的了
根据 Classroom API 文档此处:
> 用于标识学生提交内容中要更新的字段的掩码。需要此字段才能进行更新。如果指定了无效字段,更新将失败。updateMask
因此,您收到的错误消息是不言自明的。
如果您要执行
PATCH
请求,提交对象应包含 draftGrade
或 assignedGrade
,但不能包含 两者。
目前 Google Classroom api 中未公开回答简答题:https://issuetracker.google.com/issues/155218358