【问题标题】:How to get all groups for a user in Google App Script?如何在 Google App Script 中获取用户的所有组?
【发布时间】:2019-01-23 17:55:57
【问题描述】:

有没有办法为一个用户获取所有组?我的代码不能正常工作如下;

  var pageToken = null;
  var filter= {userKey: "abc@gmail.com"}; //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);
  }

它返回空组数组。

【问题讨论】:

标签: google-apps-script google-admin-sdk google-groups-api


【解决方案1】:

代码比较简单,不用token。 返回值是具有多个属性的对象数组(请参阅 JSON)

事情是这样的

function myFunction() {
  var user = AdminDirectory.Groups.list({userKey:"userEmail@xxx.yyy"});
  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);
}

【讨论】:

  • 谢谢,它返回一个用户的所有组。但是,对于某些成员,我无法获得他们的组。当我查看详细回复时,我只看到 etag 和 kind 参数,这是否意味着这些成员处于非活动状态或已暂停?
  • 我不确定,请查看 API 文档...您在这些用户的管理控制台中看到了什么?
  • 我想,用户可能处于非活动状态或被暂停,这就是为什么我看不到他们的组,但我在 Google.admin.directory api 文档中找不到它。
  • 对于这些用户,我只看到 etag 和 kind 参数; { "kind": "admin#directory#groups", "etag": etag } 对于其他人,我也看到他们的组,{ "kind": "admin#directory#groups", "etag": etag, "groups ":[组资源],"nextPageToken":字符串}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多