Class Session

工作階段

工作階段類別提供工作階段資訊的存取權,例如使用者的電子郵件地址 ( 部分情況) 和語言設定。

方法

方法傳回類型簡短說明
getActiveUser()User取得目前使用者的資訊。
getActiveUserLocale()String以字串取得目前使用者的語言設定,例如 en 代表英文。
getEffectiveUser()User取得執行指令碼授權所屬使用者的相關資訊。
getScriptTimeZone()String取得指令碼的時區。
getTemporaryActiveUserKey()String取得有效使用者的專屬臨時金鑰,但不會洩漏使用者身分。

內容詳盡的說明文件

getActiveUser()

取得目前使用者的資訊。如果安全性政策不允許存取使用者的 Identity 時,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 - 目前的使用者

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • 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:執行指令碼的授權者

授權

使用這個方法的指令碼需要下列一或多個範圍的授權:

  • 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()

取得有效使用者的專屬臨時金鑰,但不會洩漏使用者身分。 該指令碼專屬的暫時金鑰,每 30 天就會輪替一次。

// Log the temporary key of the person running the script.
Logger.log(Session.getTemporaryActiveUserKey());

回攻員

String:臨時活躍使用者金鑰

已淘汰的方法