BIT OF INFO :
我们正在尝试为使用Google Classroom或Google G-Suite for Education的学生建立登录信息。基本上,单点登录系统。学生和管理员将登录,我将验证他们的电子邮件扩展,这将是他们所在地区的唯一,然后我将他们放在我们系统中正确的学校。
用户帐户在我们系统中的许可证分区是在用户登录时动态发生的,因此一开始就不需要大量数据转储。
用户和管理员必须路由到我们系统中正确的学校,因为管理员在我们的系统中运行报告和管理用户,并且需要具有正确的访问权限。
问题:
我无法弄清楚如何从Google服务API获取用户Organizational Units
。一般来说,学校将使用组织单位作为学校,并将学生分配到这些学校。
因此,当我使用Oauth2
对用户进行身份验证时$googleService = new Google_Service_Oauth2($googleClient);
$info = $googleService->userinfo->get();
这样可以获得一些基本信息,但不包括该用户的组织单位。
然后当我尝试使用Google Directory
api时,它工作正常但仅当用户是管理员时
$directory = new Google_Service_Directory($googleClient);
$user = $directory->users->get($userId);
因此,如果登录我的应用程序的人(主要是学生)不是管理员,那么他们就无法从Google Directory
获取任何信息。
主要问题:
如何获取经过身份验证的用户的组织单位,而不是管理员?
使用Google服务可能无法做到这一点,但我们会使用其他六种服务来解决此问题。任何帮助表示赞赏。似乎无法在谷歌论坛或代码示例中找到有关此信息的任何信息。