Google Classroom API:如何为学生作业评分并添加评论?
如何通过Google Classroom API的Patch操作给学生作业提交添加评论/回复?
要给SHORT_ANSWER_QUESTION类型的学生作业提交添加评论(同时可搭配评分),核心是调用courses.courseWork.studentSubmissions.patch接口,正确指定updateMask并构造包含评论的请求体。以下是具体实现步骤:
核心配置与步骤
确定请求路径
替换路径中的占位符为实际ID:https://classroom.googleapis.com/v1/courses/{courseId}/courseWork/{courseWorkId}/studentSubmissions/{submissionId}courseId:目标课程的IDcourseWorkId:对应作业的IDsubmissionId:学生提交记录的ID
设置请求参数
必须在请求URL中指定updateMask参数,用来告诉API需要更新哪些字段:- 仅添加评论:
updateMask=comments - 同时评分+添加评论:
updateMask=assignedGrade,comments
- 仅添加评论:
构造请求体
请求体需包含comments数组(支持添加多条评论),每条评论需指定text内容,可自定义评论作者的显示名称:{ "assignedGrade": 90, "comments": [ { "text": "你的回答逻辑清晰,引用的案例很贴合知识点,继续加油!", "author": { "displayName": "作业评分机器人" } } ] }注意:如果需要保留原有评论,需将原有评论内容也包含在
comments数组中,否则API会替换掉所有现有评论。权限要求
机器人需拥有classroom.coursework.students权限范围(读写学生作业数据),提前完成OAuth2授权流程获取有效访问令牌。
示例请求(curl)
curl -X PATCH \ 'https://classroom.googleapis.com/v1/courses/12345/courseWork/67890/studentSubmissions/abcdef?updateMask=assignedGrade,comments' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "assignedGrade": 85, "comments": [ { "text": "回答整体合格,但第二部分的分析不够深入,建议参考教材第5章内容补充", "author": { "displayName": "自动评分助手" } } ] }'
常见问题排查
- 评论未生效:检查
updateMask是否包含comments,若遗漏API会忽略评论字段的更新。 - 权限报错:确认授权的OAuth范围包含
classroom.coursework.students,且令牌未过期。 - 评论被覆盖:若要追加评论而非替换,需将原有评论内容一并写入请求体的
comments数组。
内容的提问来源于stack exchange,提问作者dStucky
相关产品推荐
相关产品推荐

