Google apps script 谷歌脚本:编辑更改时无法访问e.user

Google apps script 谷歌脚本:编辑更改时无法访问e.user,google-apps-script,Google Apps Script,以下是我的算法: 制作表格 在脚本编辑器中,使用以下功能创建脚本: function displayUser(e){ Logger.log(e.user); Logger.log(e.user.getEmail()); } 创建一个触发器,该触发器在编辑时从电子表格的事件后运行displayUser 编辑表单的电子表格 日志输出将显示: 未定义 处决笔录上说: 执行失败:TypeError:无法调用未定义的方法“getEmail”。(第3行,文件“代码”) 但是,google指定

以下是我的算法:

  • 制作表格
  • 在脚本编辑器中,使用以下功能创建脚本:

    function displayUser(e){
      Logger.log(e.user);
      Logger.log(e.user.getEmail());
    }
    
  • 创建一个触发器,该触发器在编辑时从电子表格
    的事件
    后运行
    displayUser

  • 编辑表单的电子表格
日志输出将显示:

未定义

处决笔录上说:

执行失败:TypeError:无法调用未定义的方法“getEmail”。(第3行,文件“代码”)

但是,google指定
e.user

始终返回表示电子表格所有者的用户对象

这里不是这样,因为
e.user
是未定义的

我在谷歌新的访问权管理系统之前使用了这个命令,它工作得很好——它返回了关于电子表格所有者的信息


我犯了什么错误吗?

你说得对,它不会返回ss的所有者。当重命名为onEdit()并用作简单触发器时,它确实返回工作表的有效用户,但我想这不是您需要的;-)-我个人以前从未使用过它,因此我无法确认它以前是否有效,但如果您确定您可以检查问题跟踪程序(我检查过,但没有发现任何提及),并最终创建一个新的问题跟踪程序。

上面显示的脚本按预期工作。你还能提供什么其他信息来帮助我们呢?@user2661246-没错,它不会返回ss的所有者。当重命名为onEdit()并用作简单触发器时,它确实返回工作表的有效用户,但我想这不是您需要的;-)-我个人以前从未使用过它,所以我无法确认它以前是否有效,但如果你确定你可以检查问题跟踪程序(我确实检查过,但没有发现任何提及),并最终创建一个新的问题跟踪程序。@William:你所说的“按预期工作”是什么意思?事实上,新的身份验证系统改变了触发器的行为,在更改之前,为trigger onEdit定义的任何函数都会接收以下内容:用户、源、范围、值。现在只需将函数定义为onEdit接收以下内容:user、source、range、value,其余仅接收:source、range、value。它必须验证它不是bug。@Serge:我的测试是用以前的身份验证系统完成的,所以我工作正常。