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