我正在使用 Apps 脚本来获取 Google 网上论坛中所有成员的列表。我正在使用递归函数来尽可能深入地了解子组,但是我必须处理这样的事实:我可能无法访问组内的所有子组。 我的目标是忽略我无权访问的子组。例如,我从 A 组开始,它有两个子组 B 和 C。我无权访问 B。我想返回 A 和 C 的所有成员的列表。我的代码只返回 A 成员。
问题是当我想获取子组列表时,它返回一个错误。这是代码:
function getAllMembers(group, groupEmail, members = []) {
Logger.log(group.getEmail())
try {
// Ajouter les membres directs du groupe actuel
try {
members.push(...group.getUsers().map(user => [user.getEmail(), groupEmail]));
} catch (error) {
console.warn(`Accès refusé aux membres du groupe ${group.getEmail()} : ${error.message}`);
}
// Parcourir les sous-groupes
const subGroups = [];
try {
Logger.log(...group.getGroups())
subGroups.push(...group.getGroups());
} catch (error) {
console.warn(`Accès refusé aux sous-groupes de ${group.getEmail()} : ${error.message}`);
}
for (const subGroup of subGroups) {
members.push(...getAllMembers(subGroup, groupEmail, []));
}
} catch (error) {
console.error(`Erreur lors de l'accès au groupe ${group.getEmail()} : ${error.message}`);
}
return members;
}
当我调用 subGroups.push(...group.getGroups()); 时发生错误。错误是:找不到名为:“该组的电子邮件”的组。 感谢您的帮助!
方法文档中没有明确说明,但是如果您没有权限列出子组的成员,则无法获取组。
有一个关于它的功能请求,您可以对其进行投票。
如果您碰巧使用工作区,则有admin sdk 和 cloud Identity 选项,但对于消费者群体来说,获取列表的唯一方法是通过 Web 界面。