日本情通信の渡邊です。
本記事はNI+C TeamGCP Advent Calendar 2023の23日目の記事となります。
今回はGoogleスプレッドシートの拡張機能からGoogle App Script(GAS)を利用して、GWSに存在するメールアドレスを(おそらく)すべて出力してみました。
何はともあれコードです。今回はスプレッドシートの上部にメニューを追加して、そこからを動かせるようにしてみました。(利用する場合、シート名やメニュー名などは任意に変更してください。)
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("シート1");
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
SpreadsheetApp.getActive().toast("Access OK ","INFO",5);
ui.createMenu('【カスタムメニュー】')
.addItem('メールアドレス取得', 'getMailAddressList')
.addToUi();
}
function getMailAddressList() {
let row = 1
// ヘッダの設定
sheet.getRange(row,1).setValue("メールアドレス")
sheet.getRange(row,2).setValue("姓名 or グループ名")
sheet.getRange(row,3).setValue("種別")
let userInfoList = AdminDirectory.Users.list({
customer: 'my_customer',
orderBy: 'email'
})
let groupInfoList = AdminDirectory.Groups.list({
customer: 'my_customer',
orderBy: 'email',
})
for (const userInfo of userInfoList.users) {
for (const userEmail of userInfo.emails) {
++row
sheet.getRange(row,1).setValue(userEmail.address)
sheet.getRange(row,2).setValue(userInfo.name.familyName + " " + userInfo.name.givenName)
sheet.getRange(row,3).setValue("ユーザー")
}
}
for(const group of groupInfoList.groups){
++row
sheet.getRange(row,1).setValue(group.email)
sheet.getRange(row,2).setValue(group.name)
sheet.getRange(row,3).setValue("グループ")
let groupAlias = AdminDirectory.Groups.Aliases.list(group.id)
if(typeof groupAlias.aliases === 'undefined'){
}else{
for(const alias of groupAlias.aliases){
++row
sheet.getRange(row,1).setValue(alias.alias)
sheet.getRange(row,2).setValue(group.name)
sheet.getRange(row,3).setValue("グループ")
}
}
}
SpreadsheetApp.getActive().toast("作成処理完了: " + row + " 行","INFO",5);
}
上記のコードをスプレッドシートと紐づけたGASに設定していきます。
以上で設定は終了です。
設定が終わったので実行していきます。
GWSの情報を簡単にスプレッドシートに出力できました。GASを使えばGWSから様々な情報を出力でき、色々活用できますので、アレンジして使ってみてください。
Google Cloud、Google Workspaceに関する お問い合わせはこちら