【问题标题】: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
- 创建凭据:
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));
- 委派权限并模拟您域中的其他用户。
delegated_credentials = credentials.with_subject('user@example.org')
确保您冒充组织的超级管理员。服务帐户本身不能是域的管理员,但它可以模拟域管理员,而无需存储管理员的凭据。