0

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

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

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

我的管理员帐户收到 200 条回复,其中包含完整的课程列表。我的服务帐户收到空的 200 响应。如果我授予服务帐户域管理员权限,它会返回完整的课程列表。如果需要,我很乐意提供经过清理的屏幕截图,但有谁知道服务帐户需要哪些权限才能通过 API 访问 Google 课堂数据?

4

1 回答 1

1

模拟域中的帐户:

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

正如此答案中所解释的,只有域管理员才能访问域中的所有课程。其余用户只能访问他们所属的课程(作为教师、学生等)。

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

服务帐户本身:

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

而且由于服务帐户在技术上不是域的一部分,因此不能将其添加到域中的课程中(只有域中的帐户可以添加到课程中——无论如何,将服务帐户作为老师或课程的学生?)。

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

参考:

于 2020-09-01T11:02:44.100 回答