You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Google Classroom中CourseWorkSubmission对应的学生userId?

解决Google Classroom作业文档插件无法获取学生上下文的问题

嘿,这个问题我之前在开发Classroom相关插件时也碰到过,给你几个实用的解决方向:

1. 从Drive文档的关联元数据挖信息

当学生通过Classroom提交作业时,生成的Docs副本其实会携带和Classroom绑定的元数据。你可以调用Drive API的files.get方法,请求时指定fields='appProperties'参数,这里面大概率藏着你需要的submissionId、courseId这类关键ID。举个调用示例:

GET https://www.googleapis.com/drive/v3/files/{你的文档FILE_ID}?fields=appProperties

返回的appProperties里通常会有类似classroom.submissionId的键值对,这就是你要找的提交ID。

2. 用Classroom API反向匹配提交记录

如果你已经拿到了当前文档的fileId,可以调用Classroom API的courses.courseWork.studentSubmissions.list接口,传入对应的courseId和courseWorkId,然后遍历返回的所有提交记录,检查每个提交的attachments字段,找到包含该fileId的条目——这样就能同时拿到submissionId和userId了。

3. 检查插件的权限和触发场景

别漏掉权限这块!你的插件必须申请对应的OAuth权限:

  • 至少要有https://www.googleapis.com/auth/classroom.student-submissions.students.readonly(或者更高的Classroom权限)
  • 同时需要https://www.googleapis.com/auth/drive.metadata.readonly来读取文档元数据
    另外要确认插件是在学生提交的作业副本页面触发的——教师自己创建的原始作业文档是不带提交关联信息的,只有学生提交后生成的副本才会绑定这些上下文。

4. 切换到Classroom侧边栏插件(如果可行)

如果你的插件可以改成Classroom的侧边栏插件,那事情就简单多了!Classroom会直接在插件启动时传入courseId、courseWorkId、submissionId这些上下文参数,你通过插件的客户端API就能直接拿到,根本不用从文档里费劲提取。

小提醒:如果试了上面的方法还是拿不到数据,先确认这个文档确实是通过Classroom的提交流程生成的——如果是教师手动分享的文档,是不会带有这些关联元数据的哦。

内容的提问来源于stack exchange,提问作者ro͢binmckenzie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:27:16