我使用G Suite Admin Directory API检索电子邮件地址(不一定是G Suite域用户)所属的组列表,使用{{1} }:
directory.groups.list
这通常会返回包含该电子邮件地址的组列表。但是,有时它会错误地返回一个空列表,即使我知道该电子邮件地址是多个组的成员,我可以通过列出我知道它是其成员的组成员来验证,我可以看到它在列表中。
GET https://www.googleapis.com/admin/directory/v1/groups?domain={DOMAIN}&userKey={QUERY_EMAIL_ADDRESS}&key={API_KEY}
(不"群组"字段表示未找到结果)
对于某些电子邮件地址似乎一直都失败了,但是它失败的具体地址背后似乎没有任何逻辑。没有特殊字符,没有特殊角色,它们都是正确的URL编码。
我发现当我使用与电子邮件地址关联的不可变ID时,会返回正确的组列表。但是,获得这种不可变id的唯一方法是从包含该电子邮件地址的200 OK
{
"kind": "admin#directory#groups",
"etag": "{ETAG}"
}
的响应中获取它(我会使用directory.members.list
,但它们是外部电子邮件地址)。但是,我不能依赖于此,因为我显然事先并不知道哪些群组可以用来查找ID。
我有办法修复这些错误的空响应吗,或者,有没有办法找出分配给外部电子邮件地址的不可变ID?