1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GASを使ってGoogleグループを大量に新規作成と初期設定を一気に行いたい

Last updated at Posted at 2023-10-11

背景

GoogleWorkSpaceでGoogleグループをML(メーリングリスト)として利用したりしていると、Googleグループを大量に作成する必要があったりします。

また、Googleグループには結構細かい初期設定を行うことができます。今回のような一括で新規作成と初期設定を行えるスクリプトをGASで作成しようと考えました。

事前準備

事前に以下のようなスプレットシートを作成します。
シート名は「group_ikkatsu」とします。
image.png

コード

function googlegroup_ikkatsu(){
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('gruop_ikkatsu');
    var lastRow = sheet.getLastRow();
    var startRow = 2;
    var numRows = lastRow - 1;
    var dataRange = sheet.getRange(startRow, 1, numRows, startRow);
    var data = dataRange.getValues();

    for (var i = 0; i < data.length; ++i) {
        var row = data[i];
        
        row.rowNumber = i + 2;
        
        // 作成するGoogleグループの基本情報
        
        // アドレス
        var groupEmail = sheet.getRange(row.rowNumber, 2).getValue();
        
        // 名前
        var groupName = sheet.getRange(row.rowNumber, 1).getValue();
        
        // 説明
        var groupDesc = sheet.getRange(row.rowNumber, 3).getValue();
        
    
    //Result列がブランクであれば処理を実行
    if (!row[3]) {
        var result = "";
        
        try
            {
            //Groupの作成
            AdminDirectory.Groups.insert({email: groupEmail, name: groupName, description: groupDesc});
            
            //5秒インターバル
            Utilities.sleep(5000);
            
            //Googleグループの初期設定
            var group = AdminGroupsSettings.Groups.get(groupEmail);
            group.whoCanJoin = 'INVITED_CAN_JOIN';
            group.whoCanViewMembership = 'ALL_MEMBERS_CAN_VIEW';
            group.whoCanViewGroup = 'ALL_MEMBERS_CAN_VIEW';
            group.allowExternalMembers = 'false';
            group.whoCanPostMessage = 'ALL_IN_DOMAIN_CAN_POST';
            group.allowWebPosting = 'false';
            group.isArchived = 'true';
            group.primaryLanguage = 'ja',
            group.archiveOnly = 'false';
            group.messageModerationLevel = 'MODERATE_NONE';
            group.spamModerationLevel = 'ALLOW';
            group.whoCanLeaveGroup = 'NONE_CAN_LEAVE';
            group.memberscanpostasthegroup = "false";
            group.whoCanModerateMembers = 'OWNERS_AND_MANAGERS';
            group.whoCanAssistContent = 'NONE';
            group.whoCanDiscoverGroup = 'ALL_IN_DOMAIN_CAN_DISCOVER';
            
            AdminGroupsSettings.Groups.patch(group, groupEmail);
            
            result = "Success";
            }
        catch(e){
        result = "Error:" + e;
        }
    
        // 結果挿入(Success or Error Log)
        sheet.getRange(row.rowNumber, 4).setValue(result);
        
        }
    }
}

補足

A,B,C列で更新された行の情報をもとにアドレス作成と初期設定を行います。
実行結果はD列に記載されます、正常に完了した場合は「Success」、エラーを吐き出した場合は、(Error:***)としてエラー情報が吐き出されます。

Googleグループに対しては結構細かい設定ができます。
興味のあるかたは参考情報やGWSのAPIサイトから確認してみてください。

参考情報

Googleグループの設定と管理|吉田航|note
Google WorkSpace Directory API: デベロッパー ガイド

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?