如何获取编辑的电子邮件 onEdit(),或在首次编辑时请求授权

How can I get the editor's email onEdit(), or ask for Authorization on first edit

这是较大脚本的第一部分,但我需要获取对单元格进行编辑的人员的电子邮件地址。例如,我只是想将编辑电子邮件作为评论添加到已编辑的单元格中。

我知道 onEdit() 在 authMode=LIMITED 下运行,这就是问题所在。可安装的触发器也将不起作用,因为它只会 return 创建脚本的人而不是单元格的编辑者。

这意味着如果我手动让他们授权,则以下内容适用于脚本所有者,但不适用于脚本的任何编辑者。

如果有办法强制用户在第一次编辑时授权自己,我想我可以让它工作。

function onEdit(e){
  Logger.log(e);
  var range = e.range;
  var email1 = Session.getActiveUser().getEmail();
  var email2 = Session.getEffectiveUser().getEmail();
  range.setNote('Active User: ' + email1 + '\nEffective User: '+ email2);
}

由于遗留行为和隐私问题,管理电子邮件可见性的规则非常复杂。如您所述,除非他们自己授权脚本,否则您将无法获取用户的电子邮件地址。一种特殊情况是 Google Apps 域中的用户。如果脚本的所有者授权它,那么它将能够读取域内其他用户的电子邮件地址。

无法强制授权,因此对于用户不在同一个域中或者是消费者帐户的情况,您必须要求他们通过菜单项、按钮授权脚本, 或其他方式。