Skip to content

Instantly share code, notes, and snippets.

@W-Yoshida
Created December 27, 2019 07:44
Show Gist options
  • Save W-Yoshida/f5cea3314bc3f90832dce1c35f8d37eb to your computer and use it in GitHub Desktop.
Save W-Yoshida/f5cea3314bc3f90832dce1c35f8d37eb to your computer and use it in GitHub Desktop.
Googleグループの設定を出力するGAS

Googleグループの設定を出力するGAS

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
//実行メニューを作成
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu("GAS実行");
menu.addItem("Googleグループ一括出力", "exportGoogleGroup");
menu.addToUi();
}
function exportGoogleGroup() {
//対象ドメイン
var domainName = '';
//取得するグループの最大数(デフォルトは200)
var maxResults = 500;
//シートをクリア
sheet.clear();
var values = [];
//ヘッダー追加
values.push([
"メールアドレス",
"グループ名",
"説明",
"メンバー数",
"WhoCanJoin",
"whoCanViewMembership",
"whoCanViewGroup",
"whoCanInvite",
"whoCanAdd",
"allowExternalMembers",
"whoCanPostMessage",
"allowWebPosting",
"maxMessageBytes",
"isArchived",
"archiveOnly",
"messageModerationLevel",
"spamModerationLevel",
"showInGroupDirectory",
"whoCanLeaveGroup",
"whoCanContactOwner",
"whoCanApproveMembers",
"whoCanBanUsers",
"whoCanModifyMembers",
"whoCanApproveMessages",
"whoCanDiscoverGroup",
]);
//グループ一覧の取得
var groupsList = AdminDirectory.Groups.list({domain: domainName, maxResults: maxResults});
if(groupsList) {
for(var i = 0; i < groupsList.groups.length; i++){
var value = [];
//グループの基本情報を取得
value.push(groupsList.groups[i].email); //メールアドレス
value.push(groupsList.groups[i].name); //グループ名
value.push(groupsList.groups[i].description); //説明
value.push(groupsList.groups[i].directMembersCount); //メンバー数
//グループのプロパティを取得
var group = AdminGroupsSettings.Groups.get(groupsList.groups[i].email);
value.push(group["whoCanJoin"]);
value.push(group["whoCanViewMembership"]);
value.push(group["whoCanViewGroup"]);
value.push(group["whoCanInvite"]);
value.push(group["whoCanAdd"]);
value.push(group["allowExternalMembers"]);
value.push(group["whoCanPostMessage"]);
value.push(group["allowWebPosting"]);
value.push(group["maxMessageBytes"]);
value.push(group["isArchived"]);
value.push(group["archiveOnly"]);
value.push(group["messageModerationLevel"]);
value.push(group["spamModerationLevel"]);
value.push(group["showInGroupDirectory"]);
value.push(group["whoCanLeaveGroup"]);
value.push(group["whoCanContactOwner"]);
value.push(group["whoCanApproveMembers"]);
value.push(group["whoCanBanUsers"]);
value.push(group["whoCanModifyMembers"]);
value.push(group["whoCanApproveMessages"]);
value.push(group["whoCanDiscoverGroup"]);
values.push(value);
}
//取得したデータをスプレッドシートにセット
sheet.getRange(1, 1, groupsList.groups.length + 1 , 25).setValues(values);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment