Session クラスは、ユーザーのメールアドレス(状況によっては)や言語設定などのセッション情報へのアクセスを提供します。
Methods
メソッド | 戻り値の型 | 概要 |
---|---|---|
getActiveUser() | User | 現在のユーザーに関する情報を取得します。 |
getActiveUserLocale() | String | 現在のユーザーの言語設定を文字列として取得します。たとえば、英語の場合は en です。 |
getEffectiveUser() | User | スクリプトを実行しているユーザーの権限を取得します。 |
getScriptTimeZone() | String | スクリプトのタイムゾーンを取得します。 |
getTemporaryActiveUserKey() | String | アクティブ ユーザーに固有の一時キーを取得しますが、ユーザー ID は公開しません。 |
詳細なドキュメント
getActiveUser()
現在のユーザーに関する情報を取得します。セキュリティ ポリシーでユーザーの ID へのアクセスを許可していない場合、User.getEmail()
は空の文字列を返します。メールアドレスを使用できる状況はさまざまです。たとえば、単純な onOpen(e)
または onEdit(e)
トリガー、Google スプレッドシートのカスタム関数、「ユーザーとして実行」するためにデプロイされたウェブアプリ(つまり、ユーザーではなくデベロッパーによって承認されている)など、ユーザーの承認なしでスクリプトの実行を許可するコンテキストでユーザーのメールアドレスを使用できない場合です。ただし、通常、デベロッパーが自分でスクリプトを実行する場合や、ユーザーと同じ Google Workspace ドメインに属している場合は、これらの制限は適用されません。
// Log the email address of the person running the script. var 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. var 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. var 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
- 一時的なアクティブ ユーザー鍵