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 的成員,而該群組本身是另一個群組 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