【问题标题】:Google Classroom Api Error: Insufficient PermissionGoogle Classroom Api 错误:权限不足
【发布时间】:2022-11-10 14:02:08
【问题描述】:

我一直在尝试使用谷歌教室 api 并获取学生列表,如下所示。

我按照谷歌课堂 api 文档中的说明完成了所有操作(在谷歌云平台中添加了所有必要的范围 - oAuth 同意屏幕,为谷歌课堂启用 api 等),但仍然出现以下错误:

有人可以帮我解决我被困一周的这个问题吗?

【问题讨论】:

标签: node.js google-api google-oauth google-classroom


【解决方案1】:

查看代码部分,我注意到服务帐户没有冒充管理控制台的任何用户。

如果您设置了域范围的委派:服务帐户应该具有域范围的访问权限,以便能够代表您域中的用户检索数据,否则它就像另一个帐户试图从课堂。

我建议查看指南https://developers.google.com/identity/protocols/oauth2/service-account#java

  1. 创建凭据:

    import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
    import com.google.api.services.sqladmin.SQLAdminScopes;
    
    // ...
    
    GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("MyProject-1234.json"))
        .createScoped(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN));
    1. 委派权限并模拟您域中的其他用户。

    delegated_credentials = credentials.with_subject('user@example.org')

    确保您冒充组织的超级管理员。服务帐户本身不能是域的管理员,但它可以模拟域管理员,而无需存储管理员的凭据。

【讨论】:

    猜你喜欢
    • 2021-07-11
    • 1970-01-01
    • 2019-12-31
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    相关资源
    最近更新 更多