【问题标题】:Session.getActiveUser().getEmail() returns no ValueSession.getActiveUser().getEmail() 不返回值
【发布时间】:2018-01-10 08:48:17
【问题描述】:

这是我的第一个 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

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

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

谢谢和最好的问候!

【问题讨论】:

  • 这是以前正在处理的工作表的副本吗?
  • 不完全是,因为它最初是在一个更大的项目中实现的。但它基本上是相同的函数调用和相同的问题。
  • 那么你已经授权新文档中的脚本了吗?
  • 说实话,我想我做到了,但我不确定。我在 appscript.json 中添加了这些 oauthScopes 值:oauthScopes
  • 更新:我确实授权了脚本,但现在我只收到 Console.log “Google Apps 脚本:很抱歉,发生服务器错误。请稍等,然后重试”后来似乎不起作用,因为我从昨天开始就得到了这个:)尽管如此,我现在确实使用了一种解决方法,但我仍然很好奇为什么它不再给我邮件地址了。

标签: javascript google-apps-script spreadsheet google-apps-script-editor


【解决方案1】:

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

...例如,用户的电子邮件地址在任何情况下不可用 允许脚本在没有该用户授权的情况下运行的上下文, 就像一个简单的 onOpen(e) 或 onEdit(e) 触发器...

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    相关资源
    最近更新 更多