Session 类提供会话信息的访问权限,例如用户的电子邮件地址( 以及语言设置。
方法
方法 | 返回类型 | 简介 |
---|---|---|
getActiveUser() | User | 获取有关当前用户的信息。 |
getActiveUserLocale() | String | 以字符串形式获取当前用户的语言设置,例如,en 表示英语。 |
getEffectiveUser() | User | 获取运行脚本的用户的相关信息。 |
getScriptTimeZone() | String | 获取脚本的时区。 |
getTemporaryActiveUserKey() | String | 获取活跃用户独有的临时密钥,但不会泄露用户身份。 |
详细文档
getActiveUser()
获取有关当前用户的信息。如果安全策略不允许访问用户的
User.getEmail()
会返回一个空字符串。在哪些情况下,
电子邮件地址是否可用会有所变化:例如,用户的电子邮件地址在任何国家/地区都不可用
允许脚本在未经用户授权的情况下运行的上下文,例如简单的 onOpen(e)
或 onEdit(e)
触发器、Google 表格中的自定义函数或 Web 应用
部署到“以我的身份执行”(即,由开发者而不是用户授权)。
但是,如果开发者自行运行脚本,这些限制通常不适用。
或与用户属于同一 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()
获取脚本的时区。新脚本默认使用所有者的时区,但 脚本的时区更改,方法是点击文件 >脚本中的项目属性 编辑器。请注意,电子表格具有单独的时区,可通过点击 文件 >电子表格设置。电子表格时区不同于 脚本时区经常会导致脚本出现错误。
// 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
- 临时有效的用户密钥