Ran*_*ude 2 triggers google-sheets google-apps-script
我正在尝试为使用单元格注释的工作表构建一个简单的日志。不知何故,我无法包含触发onEdit-event.
function onEdit(e){
var email = Session.getActiveUser().getEmail();
var date = String(Utilities.formatDate(new Date(), 'Europe/Berlin', 'HH:mm dd/MM/yy'));
var range = e.range;
range.setNote(email + " @ " + date);
}
Run Code Online (Sandbox Code Playgroud)
注释出现在单元格上,但电子邮件是空的。这可能与缺少权限有关吗?我假设如果我的代码有问题,注释根本不会出现在工作表中编辑过的单元格上......
以下是 Google 文档中关于 Session 类的说明
Session 类提供对会话信息的访问,例如用户的电子邮件地址(在某些情况下)和语言设置。
关于“getActiveUser()”方法,它指出
如果安全策略不允许访问用户的身份,User.getEmail() 将返回一个空字符串。电子邮件地址可用的情况各不相同:例如,用户的电子邮件地址在任何允许脚本在未经用户授权的情况下运行的上下文中都不可用,例如简单的 onOpen(e) 或 onEdit(e) 触发器, Google Sheets 中的自定义函数,或部署为“像我一样执行”(即由开发人员而不是用户授权)的网络应用程序。但是,如果开发者和用户属于同一个 G Suite 域,则这些限制通常不适用。
因为您使用简单的触发器 - onEdit() - 除非用户明确授权,否则代码不会执行。对于可安装的触发器,这意味着从脚本编辑器手动执行函数。
您可以将项目发布为工作表插件。在这种情况下,将要求用户授予在附加清单中声明的权限。
更多信息https://developers.google.com/apps-script/reference/base/session
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |