スキップしてメイン コンテンツに移動

GASでグループを一括管理

GASでグループを一括管理

GASとGoogle Groupsの連携概要

Google Apps Script(GAS)は、Google Workspace のサービスを自動化するための強力なツールです。GAS から Google Groups にアクセスすることで、グループ連携を実現できます。GroupsApp クラスを利用すると、グループの取得やメンバー管理が簡単に行えます。まずは、GAS で GroupsApp を有効にし、スクリプトエディタから GroupsApp を呼び出す準備をします。

GAS で Google Groups を操作する際の基本的なフローは次の通りです。

  1. 対象グループのメールアドレスを取得
  2. GroupsApp.getGroupByEmail(email) でグループオブジェクトを取得
  3. 取得したオブジェクトからメンバー情報を取得・更新

このように、getGroupByEmail を使うことで、メールアドレスから直接グループを取得でき、グループ連携のベースが完成します。

GroupsAppでグループ取得とメンバー一覧

グループ取得は GroupsApp.getGroupByEmail(email) を使用します。以下はサンプルコードです。

function getGroup() {
  var email = 'example-group@googlegroups.com';
  var group = GroupsApp.getGroupByEmail(email);
  Logger.log('グループ名: ' + group.getName());
}

グループオブジェクトからメンバー一覧を取得するには getUsers() を呼び出します。getUsers()Group オブジェクトのメソッドで、グループに属する全ユーザーを User オブジェクトの配列として返します。

function listMembers() {
  var email = 'example-group@googlegroups.com';
  var group = GroupsApp.getGroupByEmail(email);
  var users = group.getUsers();
  users.forEach(function(user) {
    Logger.log(user.getEmail() + ' (' + user.getName() + ')');
  });
}

上記コードを実行すると、メンバー一覧がログに出力されます。これにより、グループ取得とメンバー一覧の取得が一連の流れで完結します。

hasUserで所属確認と管理の実装例

特定のユーザーがグループに所属しているかを確認するには、hasUser(user) メソッドを使用します。hasUserGroup オブジェクトのメソッドで、引数に User オブジェクトを渡すと、所属していれば true、そうでなければ false を返します。

function checkMembership(email, userEmail) {
  var group = GroupsApp.getGroupByEmail(email);
  var user = GroupsApp.getUserByEmail(userEmail);
  var isMember = group.hasUser(user);
  Logger.log(userEmail + ' はグループに所属: ' + isMember);
}

この関数を利用して、管理者がユーザーの所属を確認し、必要に応じて追加・削除を行うワークフローを構築できます。例えば、所属確認後に addUser(user)removeUser(user) を呼び出すことで、グループ管理を自動化できます。

まとめると、GAS でのグループ連携は GroupsApp を中心に、getGroupByEmail でグループ取得、getUsers でメンバー一覧取得、hasUser で所属確認を行い、管理タスクをスクリプトで自動化することが可能です。これにより、組織内のグループ管理が効率化され、管理者の負担が軽減されます。

この記事はAIによって作成されました。

コメント