GAS実行ユーザーのメールアドレス(Googleアカウント)を取得する方法
Google Apps Script(GAS)で複数ユーザーが実行するスクリプトの場合、実行したユーザーのメールアドレスを取得したいケースがあります。
そこで、GASスクリプトを実行したユーザーのGoogleアカウント名(メアド)を取得する方法を解説します。
複数ユーザーでGASスクリプトを実行するケース
Google Apps Script(GAS)で用意したスクリプトは、作成したオーナー以外にも他のユーザーも実行するケースが多いです。
特にGoogleスプレッドシートに紐づくコンテナバインドスクリプトの場合、スプレッドシート上にボタンを配置して、スプレッドシート利用者が実行できるようにします。
GASのスクリプトのメリットは、Googleアカウントがあれば、権限が付与されているユーザーは誰でも実行できることです。
実行ユーザーのメールアドレス宛にメールを送りたい
複数ユーザーが実行するGoogle Apps Script(GAS)では、実行したユーザー宛にメールを送るといった処理が求められることがあります。
GASでメールを送る場合、一般的のような形でメールアドレスを取得して、宛先としてメールを送信します。
- 変数でメールアドレスを定義
- スプレッドシートのセルから読み込む
しかし、上記のやり方では、実行ユーザーごとにスクリプトを用意したり、実行ユーザーと読み込むセルを連動させる必要があります。
実は、GASにはスクリプトを実行したユーザーのGoogleアカウントID、すなわちメールアドレスを取得することができます。
GASスクリプト実行者のメールアドレスを取得する方法
Google Apps Script(GAS)で、実行ユーザーのメールアドレスを取得する方法として、GAS独自のメソッドが用意されています。
Session.getActiveUser().getUserLoginId()
Session.getActiveUser().getUserLoginId()メソッドではスクリプト実行したアクティブなユーザーのGoogleアカウントのIDを取得します。
GoogleアカウントのIDというのはGmailのメールアドレスだったり、登録した会社のメールアドレスです。
そのため、GoogleアカウントのIDを取得することで、実行ユーザーのメールアドレスを取得することができます。
※Session.getActiveUser().getEmail()でもメールアドレスの取得が可能です。
実行者のメアドを取得するGASサンプルコード
実際に、「Session.getActiveUser().getUserLoginId()」メソッドを活用し、GAS実行ユーザーのメールアドレスを取得して、メール送信するGASのサンプルコードを解説します。
function getExecuteUserAddress() {
let mailAddress = Session.getActiveUser().getUserLoginId();
Browser.msgBox("メールアドレス:"+mailAddress);
}
実行ログのように、GoogleアカウントのIDであるGmailのメールアドレスが取得できています。
このように、Session.getActiveUser().getUserLoginId()で実行ユーザーのメールアドレスが取得できれば、実行したユーザー宛に個別にメールを送ることが可能です。
まとめ・終わりに
今回、Google Apps Script(GAS)で実行したユーザーのメールアドレスを取得する方法を解説しました。
GASには「Session.getActiveUser().getUserLoginId()」というメソッドがあり、GoogleアカウントのID(=メアド)を取得することができます。
実行ユーザーのメールアドレスを取得することで、実行ユーザー宛にGASスクリプトで処理した結果をメール送信するといったことが可能です。
宛先メールアドレスを変数で定義したり、スプレッドシートのセルから読み取るよりも柔軟なコードになるので、ぜひ活用してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません