谷歌目录API组

0 投票
3 回答
2444 浏览
提问于 2025-04-18 11:56

我正在尝试使用谷歌的管理员目录API(用谷歌的Python库)。

我可以顺利列出目录中的用户,代码大概是这样的:

results = client.users().list(customer='my_customer').execute()

不过,这些结果并没有显示用户属于哪些组。看起来我先得到用户列表后,还得再发一个请求去获取组的列表:

results = client.groups().list(customer='my_customer').execute()

然后我还得逐个检查每个组,调用“成员”API来查看哪些用户在这个组里:

results = client.members().list(groupKey='[group key]').execute()

这就意味着我得为每个组都发一个新的请求。

这样做效率似乎非常低下。我觉得应该有更好的方法,而我可能只是没找到。有什么更好的办法吗?

3 个回答

0

对于每个用户:

results = client.groups().list(userKey=user,pageToken=None).execute()

这里的 'user' 是用户的主要邮箱地址或别名,或者是用户的ID。

这个操作会返回用户所加入的群组的一页信息,具体可以查看:

https://developers.google.com/admin-sdk/directory/v1/reference/groups/list

1

下面这个方法应该会更高效,虽然不一定完美:

对于每个用户,调用 这个 groups.list 方法,并传入 userKey 参数,这样可以指定只获取包含用户 X 的群组。

我不是 Python 开发者,但它应该看起来像这样:

results = client.groups().list(customer='my_customer',userKey='user@domain.com').execute()
1

没有比你描述的方法更好的了(目前为止)。就是一个一个地遍历这些组,然后获取每个组的成员列表。

我知道这不是你想听到的答案,但这确实是我们管理组成员的方式。

撰写回答