工作階段類別提供工作階段資訊的存取權,例如使用者的電子郵件地址 ( 部分情況) 和語言設定。
方法
方法 | 傳回類型 | 簡短說明 |
---|---|---|
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
:臨時活躍使用者金鑰