Session クラスは、ユーザーのメールアドレス(状況による)や言語設定などのセッション情報へのアクセスを提供します。
メソッド
| メソッド | 戻り値の型 | 概要 |
|---|---|---|
get | User | 現在のユーザーに関する情報を取得します。 |
get | String | 現在のユーザーの言語設定を文字列として取得します(英語の場合は en など)。 |
get | User | スクリプトが実行されている権限を持つユーザーに関する情報を取得します。 |
get | String | スクリプトのタイムゾーンを取得します。 |
get | String | アクティブ ユーザーに固有の一時キーを取得しますが、ユーザーの身元は明らかにしません。 |
詳細なドキュメント
getActiveUser()
現在のユーザーに関する情報を取得します。セキュリティ ポリシーでユーザーの ID へのアクセスが許可されていない場合、User.getEmail() は空の文字列を返します。メールアドレスが利用できる状況はさまざまです。たとえば、ユーザーのメールアドレスは、ユーザーの承認なしでスクリプトを実行できるコンテキストでは利用できません。このようなコンテキストには、単純な onOpen(e) トリガーや onEdit(e) トリガー、Google スプレッドシートのカスタム関数、「自分として実行」でデプロイされたウェブアプリ(ユーザーではなくデベロッパーによって承認されたもの)などがあります。ただし、デベロッパーがスクリプトを自分で実行する場合や、ユーザーと同じ Google Workspace ドメインに属している場合は、通常、これらの制限は適用されません。
// Log the email address of the person running the script. const email = Session.getActiveUser().getEmail(); Logger.log(email);
戻る
User - 現在のユーザー
承認
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/userinfo.email
getActiveUserLocale()
現在のユーザーの言語設定を文字列として取得します(英語の場合は en など)。
// Log the language setting of the person running the script. Logger.log(Session.getActiveUserLocale());
戻る
String - ユーザーの言語設定を表す文字列
getEffectiveUser()
スクリプトが実行されている権限を持つユーザーに関する情報を取得します。スクリプトが [自分(デベロッパー)として実行] に設定されているウェブアプリの場合、デベロッパーのユーザー アカウントが返されます。スクリプトがインストール可能なトリガーで実行されている場合、トリガーを作成したユーザーのアカウントが返されます。他のほとんどのシナリオでは、getActiveUser() と同じアカウントが返されます。
// Log the email address of the user under whose authority the script is // running. const email = Session.getEffectiveUser().getEmail(); Logger.log(email);
戻る
User - スクリプトが実行されている権限を持つユーザー
承認
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/userinfo.email
getScriptTimeZone()
スクリプトのタイムゾーンを取得します。新しいスクリプトのデフォルトはオーナーのタイムゾーンですが、スクリプトのタイムゾーンは、スクリプト エディタで [ファイル] > [プロジェクトのプロパティ] をクリックして変更できます。スプレッドシートには個別のタイムゾーンがあり、Google スプレッドシートで [ファイル] > [スプレッドシートの設定] をクリックして変更できます。スクリプトのタイムゾーンと異なるスプレッドシートのタイムゾーンは、スクリプトのバグの原因となることがよくあります。
// Log the time zone of the script. const timeZone = Session.getScriptTimeZone(); Logger.log(timeZone);
戻る
String - スクリプトのタイムゾーン
getTemporaryActiveUserKey()
アクティブ ユーザーに固有の、ユーザー ID を明らかにしない一時キーを取得します。一時キーは 30 日ごとにローテーションされ、スクリプトに固有です。
// Log the temporary key of the person running the script. Logger.log(Session.getTemporaryActiveUserKey());
戻る
String - 一時的なアクティブ ユーザーキー