使用Session.getActiveUser()。getEmail()的共享脚本冲突

时间:2018-07-31 17:05:31

标签: google-apps-script

我有一个与其他用户共享的Google Apps脚本(我拥有两个用户-一个是我的个人Gmail,一个是我在Gsuite上的工作帐户)。该脚本扫描我的收件箱中的线程,并根据规则将标签应用于线程。

我从每个用户帐户设置了基于时间的触发器来运行脚本。

该脚本调用Session.getActiveUser()。getEmail()来标识运行它的用户,并根据用户的不同设置一些参数。

记录表明,对于任何一个用户,脚本都会大约一半时间间歇性地出错,并说:“脚本无权获取活动用户的身份。” (显然,每个用户都有权限,否则每次都会失败。)

要解决此问题,我停止了在用户之间共享脚本。我在每个用户的帐户中分别制作了相同代码的副本。现在,脚本对于两个用户都可以正常运行。

谁能确认这是Google操作环境中的错误? (我怀疑)操作环境使哪个用户正在运行共享脚本感到困惑?

(我确实搜索了这个论坛,但找不到说明它的说明)

1 个答案:

答案 0 :(得分:0)

您应该使用getEffectiveUser(),因为基于时间的触发器触发时不一定有活动用户。

从文档(上面链接)中:

  

如果脚本在可安装的触发器下运行,则返回   创建触发器的用户的帐户。