セッション クラスは、ユーザーのメールアドレス(状況によっては)や言語設定などのセッション情報へのアクセスを提供します。
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
- 一時的なアクティブなユーザーキー