在WebApp中使用 ScriptDb
时,任何人都可以访问 ScriptDb
,并且在该WebApp中与 Triggers
一起作为访问用户运行,似乎无法正确确定用户 .
-
Google Apps脚本为
WebApp
forAnyone
正在运行as the accessing user
-
ScriptApp.newTrigger("myfunc").timeBased().everyMinutes(1).create();
函数 myfunc
是:
var q = {
user: Session.getActiveUser().getEmail()
};
result = db.query(q).sortBy('when', db.ASCENDING);
当从触发器访问 myfunc
时, result
似乎为空 .
触发器中的活动用户不应该是安装它的人吗?例如 . 用户在首次授权时访问WebApp?
1 回答
Session.getEffectiveUser方法按预期返回正确的用户电子邮件 . 由于脚本从触发器运行时,没有人使用它 . 始终设置"effective"用户,因为它是脚本运行的帐户"under" . 这是一个示例Web应用程序,它通过电子邮件发送主题和正文中的预期电子邮件地址 .