Session 类可用于访问会话信息,例如用户的电子邮件地址(在某些情况下)和语言设置。
方法
| 方法 | 返回类型 | 简介 |
|---|---|---|
get | User | 获取有关当前用户的信息。 |
get | String | 以字符串形式获取当前用户的语言设置,例如 en 表示英语。 |
get | User | 获取脚本正在运行的用户的相关信息。 |
get | String | 获取脚本的时区。 |
get | String | 获取对活跃用户而言是唯一的临时密钥,但不会泄露用户身份。 |
详细文档
getActiveUser()
获取有关当前用户的信息。如果安全政策不允许访问用户的身份,User.getEmail() 会返回一个空白字符串。电子邮件地址可用的情况各不相同:例如,在任何允许脚本在未经用户授权的情况下运行的环境中,用户的电子邮件地址都不可用,例如简单的 onOpen(e) 或 onEdit(e) 触发器、Google 表格中的自定义函数,或者部署为“以我身份执行”的 Web 应用(即由开发者而非用户授权)。不过,如果开发者自行运行脚本,或者与用户属于同一 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()
获取脚本正在运行的用户的相关信息。如果脚本是设置为“以我(开发者)的身份执行”的 Web 应用,则此方法会返回开发者的用户账号。如果脚本在可安装的触发器下运行,则返回创建该触发器的用户的账号。在大多数其他情况下,此方法返回的账号与 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 - 临时活跃用户密钥