Google apps script 如何在有人使用Google脚本打开电子表格时发送警报 情况:
我有一个电子表格,有15个工作表,20个用户登录并修改它 我有以下脚本,应该发送一封电子邮件,其中包含打开电子表格的用户电子邮件地址 所需的脚本函数:Google apps script 如何在有人使用Google脚本打开电子表格时发送警报 情况:,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个电子表格,有15个工作表,20个用户登录并修改它 我有以下脚本,应该发送一封电子邮件,其中包含打开电子表格的用户电子邮件地址 所需的脚本函数: 当用户打开电子表格时发送电子邮件 问题: Session.getEffectiveUser()仅从脚本所有者处获取电子邮件,而未获取我的用户电子邮件 自2003年7月以来的Session.getEffectiveUser()应该从该用户处重新自动化。我执行以下说明,以便为其他用户重新批准脚本 测试用例: 当有人打开spreadhseet时,此脚本
function LoginShift(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
MailApp.sendEmail("xxxxxx@gmail.com", "Login Shift" , "Login UserName: " + Session.getEffectiveUser());
}
我还有另外一个Session.getEffectiveuser()脚本,但是onEdit运行良好。我不知道为什么此脚本无法从getEffectiveUser获取电子邮件地址。文档中描述了一些功能: 可安装触发器
- 打开电子表格或表单编辑器时。(请注意,当用户打开表单进行响应时,此触发器不会激活,而是在编辑器打开表单进行修改时激活。)与简单触发器onOpen不同,可安装触发器可以充当安装触发器的用户
onInstall
,onOpen
,onEdit
),如下所示:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
当脚本的所有者执行时,结果如下所示:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
当由另一个用户(不是脚本的所有者)执行时,,结果如下:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
重要提示:阅读中简单触发器的限制
如果您有如下可安装触发器,并将该功能添加到电子表格的事件onOpen
:
function myOnOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
当脚本的所有者执行时,结果如下所示:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
当由另一个用户(不是脚本的所有者)执行时,,结果如下:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
文档中描述了一些功能: 可安装触发器
- 打开电子表格或表单编辑器时。(请注意,当用户打开表单进行响应时,此触发器不会激活,而是在编辑器打开表单进行修改时激活。)与简单触发器onOpen不同,可安装触发器可以充当安装触发器的用户
onInstall
,onOpen
,onEdit
),如下所示:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
当脚本的所有者执行时,结果如下所示:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
当由另一个用户(不是脚本的所有者)执行时,,结果如下:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
重要提示:阅读中简单触发器的限制
如果您有如下可安装触发器,并将该功能添加到电子表格的事件onOpen
:
function myOnOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
当脚本的所有者执行时,结果如下所示:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
当由另一个用户(不是脚本的所有者)执行时,,结果如下:
function onOpen() {
Logger.log('getActiveUser(): ' + Session.getActiveUser());
Logger.log('getEffectiveUser(): ' + Session.getEffectiveUser());
}
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): user_activates_the_trigger
getActiveUser(): owner_of_the_script
getEffectiveUser(): owner_of_the_script
getActiveUser():
getEffectiveUser(): owner_of_the_script
可能的重复可能的重复