GroupsApp.getGroupbyEmail возвращает не найдена группа - PullRequest
0 голосов
/ 09 мая 2019

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

Строка, о которой идет речь:

var WSGroup = GroupsApp.getGroupByEmail("Group_Email_Address@domain.com");

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

function getGroups(){
  //gets the current users email address then checks it against all the groups listed below. 
  //When the user is found in that group the proper excel sheet gets their time stamp and their doc is moved to the right folder.
  var check = checkTimes();
  //if(check == 1) {
  //  return 0;
  //}
  //else {
    var user = Session.getActiveUser().getEmail();
    try {
      //the groups
      var CACGroup = GroupsApp.getGroupByEmail("group1@domain.com");
      var HSGroup = GroupsApp.getGroupByEmail("group2@domain.com");
      var JHGroup = GroupsApp.getGroupByEmail("group3@domain.com");
      var JSGroup = GroupsApp.getGroupByEmail("group4@domain.com");
      var CSGroup = GroupsApp.getGroupByEmail("group5@domain.com");
      var WSGroup = GroupsApp.getGroupByEmail("group6@domain.com"); \\var WSGroup using group6@domain is the line in question.
    }
    catch(e){
      DocumentApp.getUi().prompt("There was an error with your group memberships! Report this to tech! Error: " + e);
    }

    var doc = DocumentApp.getActiveDocument();
    var docID = doc.getId();
    //If user is in CAC group timestamp the CAC excel sheet then move the document to the CAC signed docs folder.
    try{
      if(CACGroup.hasUser(user)){
        var googleSheet = SpreadsheetApp.openById('ID of spreadsheet 1');
        setStatus(user, googleSheet, doc);
      }
      if(HSGroup.hasUser(user)){
        var googleSheet = SpreadsheetApp.openById('ID of spreadsheet 2');
        setStatus(user, googleSheet, doc);
      }
      if(JHGroup.hasUser(user)){
        var googleSheet = SpreadsheetApp.openById('ID of spreadsheet 3');
        setStatus(user, googleSheet, doc);
      }
      if(JSGroup.hasUser(user)){
        var googleSheet = SpreadsheetApp.openById('ID of spreadsheet 4');
        setStatus(user, googleSheet, doc);
      }
      if(CSGroup.hasUser(user)){
        var googleSheet = SpreadsheetApp.openById('ID of spreadsheet 5');
        setStatus(user, googleSheet, doc);
      }
      if(WSGroup.hasUser(user)){
        var googleSheet = SpreadsheetApp.openById('ID of spreadsheet 6');
        setStatus(user, googleSheet, doc);
      }
    }
    catch(e){
      var prompt = 'There was an issue accessing the excel sheet for your building!' ;
      DocumentApp.getUi().alert(prompt);
    }
    var prompt = 'Document sent to your main office!';
    DocumentApp.getUi().alert(prompt);
  //}
}

Любой пользователь в домене должен иметь возможность найти группу и просмотреть ее участников. Я уже подтвердил эти настройки в admin.google.com и groups.google.com. Этот же код может найти другие группы, поэтому необходимые API уже разрешены и включены.

1 Ответ

0 голосов
/ 16 мая 2019

Я недавно столкнулся с этой проблемой, и вот что мы сделали:

Учетная запись, выполняющая скрипт, должна быть либо участником / менеджером / владельцем проверяемой группы.В вашем случае «group1@domain.com», «group2@domain.com» и т. Д.

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

...