Session 類別可存取工作階段資訊,例如使用者的電子郵件地址 (在某些情況下) 和語言設定。
方法
| 方法 | 傳回類型 | 簡短說明 |
|---|---|---|
get | User | 取得目前使用者的相關資訊。 |
get | String | 以字串形式取得目前使用者的語言設定,例如英文為 en。 |
get | User | 取得指令碼執行授權的使用者相關資訊。 |
get | String | 取得指令碼的時區。 |
get | String | 取得專屬於活躍使用者的暫時金鑰,但不會揭露使用者身分。 |
內容詳盡的說明文件
getActiveUser()
取得目前使用者的相關資訊。如果安全性政策不允許存取使用者身分,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:目前使用者
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
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:指令碼執行時所屬的使用者
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/userinfo.email
getScriptTimeZone()
取得指令碼的時區。新腳本預設會採用擁有者的時區,但您可以在腳本編輯器中依序點選「檔案」>「專案屬性」,變更腳本的時區。請注意,試算表有獨立的時區,如要變更,請在 Google 試算表中按一下「檔案」>「試算表設定」。試算表時區與指令碼時區不同,是指令碼錯誤的常見來源。
// Log the time zone of the script. const timeZone = Session.getScriptTimeZone(); Logger.log(timeZone);
回攻員
String:指令碼的時區
getTemporaryActiveUserKey()
取得專屬於活躍使用者的暫時金鑰,但不揭露使用者身分。 臨時金鑰每 30 天會輪替一次,且每個指令碼都有專屬金鑰。
// Log the temporary key of the person running the script. Logger.log(Session.getTemporaryActiveUserKey());
回攻員
String:暫時性有效使用者金鑰