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

时间:2015-01-07 15:34:23

标签: google-apps-script google-sheets

这是较大脚本的第一部分,但我需要获取对单元格进行编辑的人员的电子邮件地址。对于示例,我只是尝试将编辑器电子邮件添加为已编辑的单元格的注释。

我知道onEdit()在authMode = LIMITED中运行,这是个问题。并且可安装的触发器也将无法工作,因为它只会返回创建脚本的人而不是单元格的编辑器。

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

如果有办法迫使用户在第一次编辑时授权自己,我想我可以使用它。

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);
}

1 个答案:

答案 0 :(得分:2)

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

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