UserManagerで
DomainUserを取得するメソッドの中に、「Userオブジェクトを引数に指定する」というものがありました。「これ、具体的にどういうときに使うんだ?」と思った人もいるでしょう。
このメソッドのもっとも基本的な使い方は、「アクセスしている本人の
DomainUserを取得する」のに利用する、というものです。
Google Apps Scriptには、現在の接続(セッション)に関する情報を管理する「
Session」というクラスが用意されています。このクラスを利用することで、このセッションに関する各種の情報を得ることができます。中でも重要なのが、ユーザーに関する情報です。これには以下のようなメソッドがあります。
・アクティブユーザーを得る変数 = Session.getActiveUser();
・エフェクティブユーザーを得る変数 = Session.getEffectiveUser();
・ログインユーザーを得る変数 = Session.getUser();
いずれも、先ほどちらっと説明した「
User」オブジェクトとして返されます。エフェクティブユーザーというのがよくわからないでしょうが、これは「何のサービスによってアクセスされているか」と考えてください。例えばスクリプト内からGoogleカレンダーのサービスを取得し処理している最中であれば、
Calendarがエフェクティブユーザーとして返されます。そうしたケースでなければアクティブユーザーが返されるでしょう。
簡単な利用例として、現在アクセスしているアクティブユーザー情報を取得し表示するスクリプトを下に挙げておきます。先のサンプルと、
Session.getActiveUserで
Userを取得し
UserManager.getUserしている、という点が違うだけで後は同じです。