Class Group

群組

群組物件可以查詢群組中的成員和這些成員的角色。

以下是顯示群組成員的範例。執行前,請將群組的電子郵件地址替換為網域中的電子郵件地址。

function listGroupMembers() {
  var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
  console.log(group.getEmail() + ':');
  var users = group.getUsers();
  for (var i = 0; i < users.length; i++) {
    var user = users[i];
    console.log(user.getEmail());
  }
}

方法

方法傳回類型簡短說明
getEmail()String取得這個群組的電子郵件地址。
getGroups()Group[]擷取群組的直接子群組。
getRole(email)Role在群組中擷取使用者的角色。
getRole(user)Role在群組中擷取使用者的角色。
getRoles(users)Role[]在群組中擷取使用者角色。
getUsers()User[]取得擁有對應 Google 帳戶的直接群組成員。
hasGroup(group)Boolean測試群組是否為這個群組的直接成員。
hasGroup(email)Boolean測試群組是否為這個群組的直接成員。
hasUser(email)Boolean測試使用者是否為群組的直接成員。
hasUser(user)Boolean測試使用者是否為群組的直接成員。

內容詳盡的說明文件

getEmail()

取得這個群組的電子郵件地址。

這個範例會列出使用者所屬的所有群組。

function listMyGroupEmails() {
  var groups = GroupsApp.getGroups();
  for (var i = 0; i < groups.length; i++) {
    console.log(groups[i].getEmail());
  }
}

回攻員

String:群組的電子郵件地址。

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

getGroups()

擷取群組的直接子群組。如果您沒有檢視群組成員清單的權限,則會擲回例外狀況。

除了這種方法以外,您也可以使用 Admin SDK Directory 進階服務,擷取網域中的群組成員。

function listGroupMembers() {
  var GROUP_EMAIL = "example@googlegroups.com";
  var group = GroupsApp.getGroupByEmail(GROUP_EMAIL);
  var childGroups = group.getGroups();
  console.log("Group " + GROUP_EMAIL + " has " + childGroups.length + " groups:");
  for (var i = 0; i < childGroups.length; i++) {
    var childGroup = childGroups[i];
    console.log(childGroup.getEmail());
  }
}

回攻員

Group[]:所有直接子項群組。

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

getRole(email)

在群組中擷取使用者的角色。屬於群組的直接成員,在該群組中只有一個角色。如果使用者不是群組成員,或是權限不足無法查看群組成員清單,就會擲回例外狀況。

以下範例會列出群組的擁有者:

var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
var users = group.getUsers();
console.log('These are the group owners:');
for (var i = 0; i < users.length; i++) {
  var user = users[i];
  if (group.getRole(user.getEmail()) == GroupsApp.Role.OWNER) {
    console.log(user.getEmail());
  }
}

參數

名稱類型說明
emailString使用者的電子郵件地址。

回攻員

Role:該使用者在群組中的角色。

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

getRole(user)

在群組中擷取使用者的角色。屬於群組的直接成員,在該群組中只有一個角色。如果使用者不是群組成員,或是權限不足無法查看群組成員清單,就會擲回例外狀況。

以下範例會列出群組的擁有者:

var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
var users = group.getUsers();
console.log('These are the group owners:');
for (var i = 0; i < users.length; i++) {
  var user = users[i];
  if (group.getRole(user) == GroupsApp.Role.OWNER) {
    console.log(user.getEmail());
  }
}

參數

名稱類型說明
userUser要擷取角色的使用者。

回攻員

Role:該使用者在群組中的角色。

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

另請參閱


getRoles(users)

在群組中擷取使用者角色。屬於群組的直接成員,在該群組中只有一個角色。如果任何使用者不是群組成員,或是您沒有檢視群組成員清單的權限,則會擲回例外狀況。

以下範例會列出群組的擁有者:

var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
var users = group.getUsers();
var roles = group.getRoles(users);
console.log('These are the group owners:');
for (var i = 0; i < users.length; i++) {
  if (roles[i] == GroupsApp.Role.OWNER) {
    console.log(users[i].getEmail());
  }
}

參數

名稱類型說明
usersUser[]要求取得角色的使用者。

回攻員

Role[]:這些使用者在群組中的角色,

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

getUsers()

取得擁有對應 Google 帳戶的直接群組成員。如果您沒有查看群組成員清單或成員電子郵件的權限,就會擲回例外狀況。

注意:如果您是某個群組 B 的成員,而該群組本身是另一個群組 A 的成員,則系統會「間接」訂閱 A 群組。雖然您收到了傳送至其郵件的副本,但實際上您並未訂閱上層群組 A。

以下是顯示群組成員的範例。執行前,請將群組的電子郵件地址替換為網域中的電子郵件地址。

function listGroupMembers() {
  var GROUP_EMAIL = "example@googlegroups.com";
  var group = GroupsApp.getGroupByEmail(GROUP_EMAIL);
  var users = group.getUsers();
  console.log("Group " + GROUP_EMAIL + " has " + users.length + " members:");
  for (var i = 0; i < users.length; i++) {
    var user = users[i];
    console.log(user.getEmail());
  }
}
除了此方法之外,您也可以使用 Admin SDK Directory 進階服務擷取網域中的群組成員。

回攻員

User[]:群組的所有直接成員。

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

hasGroup(group)

測試群組是否為這個群組的直接成員。如果測試群組的巢狀結構位於這個群組下方的多個層級,這個方法不會傳回 true。如果您沒有檢視群組成員清單的權限,則會擲回例外狀況。

var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
var childGroup = GroupsApp.getGroupByEmail("childgroup@googlegroups.com");
if (group.hasGroup(childGroup)) {
  console.log("childgroup@googlegroups.com is a child group");
}

參數

名稱類型說明
groupGroup要測試成員資格的群組。

回攻員

Boolean — 如果該群組是這個群組的子項群組,則為 true;否則為 false

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

hasGroup(email)

測試群組是否為這個群組的直接成員。如果測試群組的巢狀結構位於這個群組下方的多個層級,這個方法不會傳回 true。如果您沒有檢視群組成員清單的權限,則會擲回例外狀況。

var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
if (group.hasGroup("childgroup@googlegroups.com")) {
  console.log("childgroup@googlegroups.com is a child group");
}

參數

名稱類型說明
emailString群組的電子郵件地址。

回攻員

Boolean — 如果該群組是這個群組的子項群組,則為 true;否則為 false

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

hasUser(email)

測試使用者是否為群組的直接成員。如果您沒有檢視群組成員清單的權限,則會擲回例外狀況。

以下範例會檢查目前使用者是否為某個群組的成員:

var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
var currentUser = Session.getActiveUser();
if (group.hasUser(currentUser.getEmail())) {
  console.log("You are a member");
}

參數

名稱類型說明
emailString使用者的電子郵件地址。

回攻員

Boolean - 如果該使用者是群組成員,則為 true;否則為 false

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups

hasUser(user)

測試使用者是否為群組的直接成員。如果您沒有檢視群組成員清單的權限,則會擲回例外狀況。

以下範例會檢查目前使用者是否為某個群組的成員:

var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
var currentUser = Session.getActiveUser();
if (group.hasUser(currentUser)) {
  console.log("You are a member");
}

參數

名稱類型說明
userUser要測試成員資格的使用者。

回攻員

Boolean - 如果該使用者是群組成員,則為 true;否則為 false

授權

使用這個方法的指令碼必須取得以下一或多個範圍的授權:

  • https://www.googleapis.com/auth/groups