libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

DomainサービスとUserManager (3/4)

作成:2012-04-02 08:18
更新:2012-04-02 08:18

■SessionクラスとUserクラス

UserManagerDomainUserを取得するメソッドの中に、「Userオブジェクトを引数に指定する」というものがありました。「これ、具体的にどういうときに使うんだ?」と思った人もいるでしょう。

このメソッドのもっとも基本的な使い方は、「アクセスしている本人のDomainUserを取得する」のに利用する、というものです。

Google Apps Scriptには、現在の接続(セッション)に関する情報を管理する「Session」というクラスが用意されています。このクラスを利用することで、このセッションに関する各種の情報を得ることができます。中でも重要なのが、ユーザーに関する情報です。これには以下のようなメソッドがあります。

・アクティブユーザーを得る
変数 = Session.getActiveUser();

・エフェクティブユーザーを得る
変数 = Session.getEffectiveUser();

・ログインユーザーを得る
変数 = Session.getUser();

いずれも、先ほどちらっと説明した「User」オブジェクトとして返されます。エフェクティブユーザーというのがよくわからないでしょうが、これは「何のサービスによってアクセスされているか」と考えてください。例えばスクリプト内からGoogleカレンダーのサービスを取得し処理している最中であれば、Calendarがエフェクティブユーザーとして返されます。そうしたケースでなければアクティブユーザーが返されるでしょう。

簡単な利用例として、現在アクセスしているアクティブユーザー情報を取得し表示するスクリプトを下に挙げておきます。先のサンプルと、Session.getActiveUserUserを取得しUserManager.getUserしている、という点が違うだけで後は同じです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function myFunction() {
  var usr = UserManager.getUser(Session.getActiveUser());
  var result = usr.getFamilyName() + "-" + usr.getGivenName();
  result += "\n" + usr.getEmail();
  Browser.msgBox(result);
}

※関連コンテンツ

「Google Apps Scriptプログラミング [中級編]」に戻る