我正在尝试提取 Google 网上论坛所有成员的列表,包括子网上论坛,但我不能忽略我无权访问的子网上论坛

问题描述 投票:0回答:1

我正在使用 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()); 时发生错误。错误是:找不到名为:“该组的电子邮件”的组。 感谢您的帮助!

google-apps-script google-groups
1个回答
0
投票

方法文档中没有明确说明,但是如果您没有权限列出子组的成员,则无法获取组。

有一个关于它的功能请求,您可以对其进行投票。

如果您碰巧使用工作区,则有

admin sdkcloud Identity 选项,但对于消费者群体来说,获取列表的唯一方法是通过 Web 界面。

© www.soinside.com 2019 - 2024. All rights reserved.