Class Group

群組

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

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

function listGroupMembers() {
  const group = GroupsApp.getGroupByEmail('example@googlegroups.com');
  console.log(`${group.getEmail()}:`);
  const users = group.getUsers();
  for (let i = 0; i < users.length; i++) {
    const 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() {
  const groups = GroupsApp.getGroups();
  for (let i = 0; i < groups.length; i++) {
    console.log(groups[i].getEmail());
  }
}

回攻員

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

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

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

getGroups()

擷取群組的直屬子群組。如果沒有查看群組成員名單的權限,系統會擲回例外狀況。

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

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

回攻員

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

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

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

getRole(email)

擷取使用者在群組中的角色。群組的直接成員在該群組中只能有一個角色。如果使用者不是群組成員,或您沒有查看群組成員名單的權限,系統會擲回例外狀況。

這個範例列出群組擁有者:

const group = GroupsApp.getGroupByEmail('example@googlegroups.com');
const users = group.getUsers();
console.log('These are the group owners:');
for (let i = 0; i < users.length; i++) {
  const 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)

擷取使用者在群組中的角色。群組的直接成員在該群組中只能有一個角色。如果使用者不是群組成員,或您沒有查看群組成員名單的權限,系統會擲回例外狀況。

這個範例列出群組擁有者:

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

參數

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

回攻員

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

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

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

另請參閱


getRoles(users)

擷取使用者在群組中的角色。群組的直接成員在該群組中只能有一個角色。如果任何使用者不是群組成員,或您沒有查看群組成員名單的權限,系統就會擲回例外狀況。

這個範例列出群組擁有者:

const group = GroupsApp.getGroupByEmail('example@googlegroups.com');
const users = group.getUsers();
const roles = group.getRoles(users);
console.log('These are the group owners:');
for (let 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 的成員,而群組 B 又是另一個群組 A 的成員,您就會間接訂閱群組 A。雖然你會收到傳送至該群組的郵件副本,但實際上並未訂閱上層群組 A。

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

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

回攻員

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

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

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

hasGroup(group)

測試群組是否為這個群組的直接成員。如果受測群組位於這個群組下方超過一層,這個方法就不會傳回 true。如果沒有查看群組成員清單的權限,系統會擲回例外狀況。

const group = GroupsApp.getGroupByEmail('example@googlegroups.com');
const 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。如果沒有查看群組成員清單的權限,系統會擲回例外狀況。

const 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)

測試使用者是否為群組的直接成員。如果沒有查看群組成員名單的權限,系統會擲回例外狀況。

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

const group = GroupsApp.getGroupByEmail('example@googlegroups.com');
const 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)

測試使用者是否為群組的直接成員。如果沒有查看群組成員名單的權限,系統會擲回例外狀況。

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

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

參數

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

回攻員

Boolean - true (如果使用者是群組成員);false (否則)。

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

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