Class Session

セッション

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 - 一時的なアクティブ ユーザー鍵

サポート終了のメソッド