Class 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()

获取脚本的时区。新脚本默认采用所有者的时区,但您可以通过点击脚本编辑器中的文件 > 项目属性来更改脚本的时区。请注意,电子表格有一个单独的时区,可以通过点击 Google 表格中的文件 &gt 电子表格设置来更改时区。电子表格时区与脚本时区不同是导致脚本错误的常见原因。

// 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 - 临时活跃用户密钥

已废弃的方法