微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Google Classroom API访问要求 模拟域中的帐户:服务帐户本身:参考:

如何解决Google Classroom API访问要求 模拟域中的帐户:服务帐户本身:参考:

我正在使用此网站进行测试: https://developers.google.com/classroom/reference/rest/v1/courses/list

我有一个带有服务帐户的项目设置:

  • 该帐户是通过只读域访问权限创建的。
  • 事实成立之后就建立了一个项目。
  • 之后,我添加了该帐户。
  • 然后我在该项目中启用了Classroom API。
  • 我在上面链接站点上将课程范围添加到服务帐户的域范围授权。

我的管理员帐户收到200条完整课程列表的回复。我的服务帐户收到200空响应。如果我授予服务帐户域管理员,则它将返回课程的完整列表。我很乐意在需要时提供经过清理的屏幕截图,但是没有人知道服务帐户需要除域管理员以外的哪些权限才能通过API访问Google教室数据?

解决方法

模拟域中的帐户:

已被授予域范围权限的服务帐户可以访问与其模拟帐户相同的数据。

this answer中所述,只有域管理员才能访问域中的所有课程。其余用户只能访问他们所属的课程(例如老师,学生等)。

因此,服务帐户检索域中所有课程的唯一方法是模拟域管理员(或将另一个帐户添加到域中的每个课程中)

服务帐户本身:

另一方面,尚未被授予域范围权限或未使用此权限来模拟另一个帐户的服务帐户将只能访问已添加到该课程的课程。

而且,从技术上讲,服务帐户不是域的一部分,因此不能将其添加到域中的课程中(仅域can be added to a course中的帐户-无论如何,拥有服务会产生什么意义是课程的老师还是学生?)。

因此,对courses.list的调用无法返回该域中的任何课程:它将返回该服务帐户可能自己创建的,不属于域一部分的任何课程。

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?