はじめに
日本情通信の渡邊です。
本記事は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に設定していきます。
- 新規のスプレッドシートを作成し、拡張機能からApp Scriptを選択する
スプレッドシートからAppScriptを選択することで、スプレッドシートを操作する部分が楽になります。エクセルのVisual Studioのように使えて便利ですね。 - コードを貼り付け
コード.gsにコードを貼り付け、保存します。 - Admin SDK APIサービスを追加
GWSの情報を取得するためのサービスを追加します。コードの中で出てきている「AdminDirectory」が該当します。 - 保存ボタンをクリックし、忘れずに保存してください。
- 保存できたら、スプレッドシートを再読み込みしてください。
以上で設定は終了です。
いざ実行
設定が終わったので実行していきます。
- 追加したメニューからGASを実行
スプレッドシートを再読み込みすると、カスタムメニューが追加されますので、そこから「メールアドレス取得」を選択します。 - 初回は認証が必要、かつGASの処理が実行されないので、再実行
認証が求められられるのでOK、許可を押します。 - 再実行
認証しただけでは処理は動かないので、再度実行します。 - データがスプレッドシートに出力される
今回は、メールアドレスとユーザ名もしくはグループ名、ユーザーかグループかの種別の3カラムを出力してみました。
おわりに
GWSの情報を簡単にスプレッドシートに出力できました。GASを使えばGWSから様々な情報を出力でき、色々活用できますので、アレンジして使ってみてください。
Google Cloud、Google Workspace に関するご相談はXIMIXへ!
Google Cloud、Google Workspaceに関する お問い合わせはこちら
- カテゴリ:
- クラウド
- キーワード:
- Google Cloud