背景
GoogleWorkSpaceでGoogleグループをML(メーリングリスト)として利用したりしていると、Googleグループを大量に作成する必要があったりします。
また、Googleグループには結構細かい初期設定を行うことができます。今回のような一括で新規作成と初期設定を行えるスクリプトをGASで作成しようと考えました。
事前準備
事前に以下のようなスプレットシートを作成します。
シート名は「group_ikkatsu」とします。
コード
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: デベロッパー ガイド