Class Session

セッション

Session クラスを使用すると、ユーザーのメールアドレス(場合によって)や言語設定などのセッション情報にアクセスできます。

メソッド

メソッド戻り値の型概要
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.
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()

スクリプトのタイムゾーンを取得します。新しいスクリプトはデフォルトでオーナーのタイムゾーンになりますが、スクリプトのタイムゾーンは、スクリプト エディタで [File] > [Project properties] をクリックして変更できます。スプレッドシートには個別のタイムゾーンがあります。これは、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 - 一時的なアクティブ ユーザー キー

サポート終了のメソッド