WebApp中的ScriptDb用法

时间:2012-10-28 23:38:36

标签: google-apps-script

在WebApp中使用ScriptDb时,任何人都可以访问该Triggers并在该WebApp中作为访问用户与WebApp一起运行,似乎无法正确确定用户。< / p>

  1. Anyone的Google Apps脚本,as the accessing user正在运行ScriptApp.newTrigger("myfunc").timeBased().everyMinutes(1).create();
  2. myfunc
  3. 函数var q = { user: Session.getActiveUser().getEmail() }; result = db.query(q).sortBy('when', db.ASCENDING); 是:

    result
    从触发器访问myfunc时,

    {{1}}似乎是空的。

    触发器中的活动用户不应该是安装它的那个用户吗?例如。用户在首次授权时访问WebApp?

1 个答案:

答案 0 :(得分:2)

Session.getEffectiveUser方法按预期返回正确的用户电子邮件。由于脚本从触发器运行时,没有人使用它“活动”。始终设置“有效”用户,因为它是脚本在“下”运行的帐户。这是一个示例Web应用程序,它通过电子邮件发送主题和正文中的预期电子邮件地址。

function doGet() {
  var trigger = ScriptApp.newTrigger("testTrigger").timeBased().everyMinutes(1).create();
  var app = UiApp.createApplication();
  app.add(app.createLabel("test"));
  return app;
}

function testTrigger(e) {
  MailApp.sendEmail("xxx@sample.com", "Subject: " + Session.getEffectiveUser().getEmail(), "Body: " + Session.getEffectiveUser().getEmail());
}