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

如何为service account授予权限以访问谷歌账号创建的Google Classroom数据

Google Classroom 服务账号访问权限配置步骤

1. 开启服务账号全域权限委托

  • 仅谷歌Workspace组织账号支持该能力,如果你使用的是个人版谷歌账号,无法开启全域委托,直接跳至第4步改用OAuth 2.0授权码模式即可
  • 进入Google Cloud控制台「IAM与Admin > 服务账号」页面,找到已创建的服务账号,进入「高级设置」板块,开启「启用Google Workspace全域权限委托」开关,保存后复制生成的服务账号客户端ID

2. Workspace后台配置API授权范围

  • 进入Workspace管理后台,依次打开「安全性 > 访问权限和数据控制 > API控制 > 全域权限委托」,点击新增授权
  • 输入上一步复制的服务账号客户端ID,在OAuth范围栏填入你需要的Classroom接口对应权限,常用读权限如下:
    • https://www.googleapis.com/auth/classroom.courses.readonly(课程只读)
    • https://www.googleapis.com/auth/classroom.rosters.readonly(成员只读)
    • https://www.googleapis.com/auth/classroom.coursework.students.readonly(作业只读)
  • 保存配置后等待10~15分钟让权限全局生效

3. 代码端指定模拟用户

  • 服务账号默认使用自身身份发起请求,无法访问你个人账号下的私有Classroom数据,需要在初始化认证客户端时,指定subject参数为你创建Classroom的个人谷歌账号邮箱,Python示例如下:
from google.oauth2 import service_account

# 替换为实际的权限列表、密钥文件路径、个人账号邮箱
SCOPES = ['https://www.googleapis.com/auth/classroom.courses.readonly']
KEY_FILE_PATH = './service-account-key.json'
TARGET_USER_EMAIL = '你的个人谷歌账号邮箱@gmail.com'

credentials = service_account.Credentials.from_service_account_file(
    KEY_FILE_PATH,
    scopes=SCOPES,
    subject=TARGET_USER_EMAIL
)
  • 用生成的credentials初始化Classroom SDK客户端即可发起接口请求

4. 个人谷歌账号适配方案

  • 如果你使用的是无Workspace组织的个人谷歌账号,无法使用服务账号全域委托能力,直接改用OAuth 2.0授权码模式,在请求授权时选择你创建Classroom的个人谷歌账号同意授权,拿到access token后即可访问对应数据

内容的提问来源于stack exchange,提问作者Денис Ничипорчик

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:54:03