google-apis-explorer - 使用 Google Classroom API 提交简答题
问题描述
我正在尝试SHORT_ANSWER_SUBMISSION
通过coursework
Google 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 提交。可能吗??除了这个找不到别的了。
解决方案
根据此处的课堂 API 文档:
updateMask
> 标识学生提交的哪些字段要更新的掩码。此字段是执行更新所必需的。如果指定了无效字段,更新将失败。
因此,您收到的错误消息是不言自明的。
如果你想执行一个PATCH
请求,提交对象应该包含一个draftGrade
或assignedGrade
但不是两个。
参考
推荐阅读
- awk - 将两列合并为新列并打印所有列
- php - 如何在functions.php中获取数据
- python - pygame - while循环使pygame窗口冻结/我如何将子弹射出玩家?
- javascript - 使用 JavaScript 我想要以下输出
- ios - SwiftUI 将 Label 的垂直对齐方式更改为居中图像和文本
- javascript - 猫头鹰轮播导航效果
- python - Blender Python 语句控制台日志记录
- webstorm - 如何让 JetBrains Rider 显示左括号线?
- c# - 转换 IEnumerable
加倍 - tkinter - 多帧中的 Tkinter 网格和 ttk 小部件的潜在影响