Session 类提供对会话信息的访问权限,例如用户的电子邮件地址(在某些情况下)和语言设置。
方法
方法 | 返回类型 | 简介 |
---|---|---|
getActiveUser() | User | 获取有关当前用户的信息。 |
getActiveUserLocale() | String | 以字符串形式获取当前用户的语言设置,例如 en 表示英语。 |
getEffectiveUser() | User | 获取有关运行脚本的用户的信息。 |
getScriptTimeZone() | String | 获取脚本的时区。 |
getTemporaryActiveUserKey() | String | 获取活跃用户独有但不会显示用户身份的临时密钥。 |
详细文档
getActiveUser()
获取有关当前用户的信息。如果安全政策不允许访问用户的身份,User.getEmail()
将返回空字符串。在哪些情况下可以使用电子邮件地址onOpen(e)
onEdit(e)
但是,如果开发者自行运行该脚本,或与用户属于同一个 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()
获取有关运行脚本的用户的信息。如果脚本是设置为“以我身份执行”(开发者)的 Web 应用,则返回开发者的用户帐号。如果脚本在可安装的触发器下运行,则会返回创建触发器的用户的帐号。在大多数其他情况下,这会返回与 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 表格中依次点击文件 > 电子表格设置来更改时区。与脚本时区不同的电子表格时区是导致脚本 bug 的常见原因。
// 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
- 临时的活跃用户密钥