Как получить все группы для пользователя в Google App Script?

Есть ли способ получить все группы для пользователя? Мой код, который не работает должным образом, приведен ниже;

  var pageToken = null;
  var filter= {userKey: "[email protected]"}; //this is a member's email address
  do {
    var result = AdminDirectory.Groups.list(filter);
    filter.pageToken = result.pageToken;

    if(result.groups) {
      groups = groups.concat(result.groups.map(function(group) {
        return {
          name: group.name
        };
      }));
    }
  }
  while(result.pageToken);

  for(i = 0; i < groups.length; i++) {
    console.log(groups[i].name);
  }

Возвращает пустой массив групп.


person AshleyCam    schedule 16.08.2018    source источник
comment
Какая часть не работает? запрос? конкатенация? оба?   -  person tehhowch    schedule 16.08.2018
comment
Запрос не работает.   -  person AshleyCam    schedule 16.08.2018
comment
Тогда пользователь не является прямым участником каких-либо групп Google. Попробуйте протестировать свой ввод в API Explorer / Попробуйте этот API: разработчики .google.com / admin-sdk / directory / v1 / reference / groups /.   -  person tehhowch    schedule 16.08.2018


Ответы (1)


Код проще, нет необходимости использовать токен. Возвращаемое значение представляет собой массив объектов с несколькими свойствами (см. JSON)

Это выглядит так

function myFunction() {
  var user = AdminDirectory.Groups.list({userKey:"[email protected]"});
  var groupMembership = [];
  var userGroupProperties = user.groups;
  Logger.log(JSON.stringify(userGroupProperties));
  for(var n=0 ; n<userGroupProperties.length ; n++){
    groupMembership.push(userGroupProperties[n].name)
  }
  Logger.log('groupMembership = '+groupMembership);
}
person Serge insas    schedule 16.08.2018
comment
Спасибо, возвращает все группы для пользователя. Однако для некоторых участников я не мог получить их группы. Когда я проверял подробный ответ, я вижу только параметры etag и kind, означает ли это, что эти участники неактивны или заблокированы? - person AshleyCam; 16.08.2018
comment
Не уверен, проверьте документацию по API ... Что вы видите в консоли администратора для этих пользователей? - person Serge insas; 17.08.2018
comment
Я подумал, что пользователи могут быть неактивны или заблокированы, поэтому я не вижу их группы, но я не смог найти его в документации api Google.admin.directory. - person AshleyCam; 21.08.2018
comment
Для этих пользователей я вижу только параметры etag и kind; {kind: admin # directory # groups, etag: etag} Для остальных я тоже вижу их группы, {kind: admin # directory # groups, etag: etag, groups: [groups Resource], nextPageToken: string} - person AshleyCam; 21.08.2018