javascript - Session.getActiveUser().getEmail() 不返回任何值

标签 javascript google-apps-script google-sheets triggers

这是我的第一个 Stackoverflow 问题,所以我尽力在这里做到清晰和结构化,但请原谅我的初学者错误:)

所以我在使用 Google 脚本编辑器时遇到了一些问题,基本上我正在调用 Session.getActiveUser().getEmail() 以及 Session.getEffectiveUser ().getEmail() 函数,但它们都没有返回值。

这是我正在使用的完整代码:

function onEdit(e){
    var email = Session.getActiveUser().getEmail();
    var range = e.range;
    range.setNote('Last modified: ' + new Date() + "User is " + Session.getEffectiveUser().getEmail() + "; " + Session.getActiveUser().getEmail());
}

但是我得到的输出始终是相同的: Output in the Sheet

奇怪的是,这种情况发生在几天前,在此之前相同的功能运行良好。

有人经历过这样的事情吗?是否有解决方法可以在脚本编辑器中获取邮件地址或用户名?

最佳答案

[如果您发现自己在这里]来自文档:

...for example, the user's email address is not available in any context that allows a script to run without that user's authorization, like a simple onOpen(e) or onEdit(e) trigger...

这解释了OP所面临的行为......

关于javascript - Session.getActiveUser().getEmail() 不返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48183463/

相关文章:

javascript - 如何防止在 jquery 对话框表单中输入数据之前执行 javascript 代码

javascript - switchMap() 如何解析一个 Promise?

javascript - 使用列分组属性的 Tabulator js 库问题

google-apps-script - 你能对 Google-Apps-Script 失败做些什么吗?

google-apps-script - 提交谷歌表单后自定义确认页面

google-apps-script - 为 DuplicateObject 请求创建带有可变键的 objectIds 映射

JavaScript - 禁用互联网连接

google-sheets - bigQuery Google Drive Sheets 在一张表中显示多个工作表

javascript - getActiveCell 始终返回 A1

regex - 如果单元格包含特定文本,则返回特定的下拉列表项(Google 表格)