.getMembers () & .getGroups () в Google GroupsApp, отображающий неожиданные результаты - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть член в каждой группе нашего домена, и я хочу перечислить всех участников и группы, которые являются членами каждой группы.Я получаю сообщения об ошибках, когда в группе есть запрещенные участники, поскольку, как представляется, перечисляются некоторые из этих участников, и когда он выполняет итерацию по группам, являющимся членами, происходит сбой, если есть запрещенные участники с ошибкой доступа.

function listGroups() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var groups = GroupsApp.getGroups();
  var results = [];

  for (var i = 0; i < groups.length; i++){
    if(groups[i] != ""){
      Utilities.sleep(1000);
      results.push([groups[i].getEmail(),groups[i].getUsers().length +" Members in Group"]);
      if(groups[i].getUsers().length > 0){
        Utilities.sleep(1000);
        var members = groups[i].getUsers();
        for (var j = 0; j < members.length; j++){
          if (members[j] != ""){
            results.push([groups[i].getEmail(), members[j].getEmail()]);
          }
        }
      } // end members check
      if(groups[i].getGroups().length > 0){
        results.push([groups[i].getEmail(),groups[i].getGroups().length + "Member Groups"]);
        Utilities.sleep(1000);
        var groupInGroup = groups[i].getGroups();
        for (var k = 0; k < groupInGroup.length; k++){
          if (groupInGroup[k] != ""){
            results.push([groups[i].getEmail(),groupInGroup[k].getEmail()]);
          }
        }
      } // end Groups in Groups check.
    }
  }



  var outputSheetName = 'Group Listing '+ new Date();
  ss.insertSheet().setName(outputSheetName);
  var outputSheet = ss.getSheetByName(outputSheetName);

  outputSheet.clear();
  outputSheet.getRange(outputSheet.getLastRow()+1,1,results.length,results[0].length).setValues(results);
}

Возможно, только перечисление членов группы по ролям позволит обойти эти ошибки, но, похоже, проблема с .getMembers() и .getGroups() Правильно ли я считаю, что единственный способ обойти список членов по роли?

...