我已将该按钮添加到电子表格中并将脚本分配给它。有没有办法确定点击它的用户的电子邮件?脚本编辑数据,因此onEdit
触发器可能起作用,但此触发器设置的Session.getActiveUser().getEmail()
功能无法识别用户。
谢谢
答案 0 :(得分:4)
使用普通的Gmail帐户可以实现这一点!
我使用了一些保护功能,揭示了文档的用户和所有者,并且我将其存储在属性中以获得更好的性能。玩得开心!
function onEdit(e) {
SpreadsheetApp.getUi().alert("User Email is " + getUserEmail());
}
function getUserEmail() {
var userEmail = PropertiesService.getUserProperties().getProperty("userEmail");
if(!userEmail) {
var protection = SpreadsheetApp.getActive().getRange("A1").protect();
// tric: the owner and user can not be removed
protection.removeEditors(protection.getEditors());
var editors = protection.getEditors();
if(editors.length === 2) {
var owner = SpreadsheetApp.getActive().getOwner();
editors.splice(editors.indexOf(owner),1); // remove owner, take the user
}
userEmail = editors[0];
protection.remove();
// saving for better performance next run
PropertiesService.getUserProperties().setProperty("userEmail",userEmail);
}
return userEmail;
}