我想检查点击该特定按钮的用户。当我以我的帐户登录时单击它时,它运行正常。
但如果其他人运行它,它就是空白的。如何获取登录用户的电子邮件 ID?
这是我的代码:
function check_User(){
var ui = SpreadsheetApp.getUi();
var usr = Session.getActiveUser().getEmail();
ss.toast(usr);
if( usr == "[email protected] /cdn-cgi/l/email-protection" || usr =="[email protected] /cdn-cgi/l/email-protection"){
return true;
}
else{
ui.alert("Not authorized");
return false;
}
}
See 获取活动用户() https://developers.google.com/apps-script/reference/base/session#getActiveUser()方法说明:
如果安全策略不允许访问用户的身份,User.getEmail()
返回一个空字符串。在什么情况下
可用的电子邮件地址有所不同:例如,用户的电子邮件地址
在任何允许脚本运行的上下文中都不可用
该用户的授权,例如简单的 onOpen(e) 或 onEdit(e)
触发器、Google 表格中的自定义函数或部署到的网络应用程序
“以我的身份执行”(即由开发者授权,而不是由开发者授权)
用户)。然而,如果以下情况,这些限制通常不适用:
开发者和用户属于同一个 Google Apps for Business
领域。
What execute您的应用程序部署有权限吗?如果是“作为你(所有者)”, then getActiveUser().getEmail()
仅当您(脚本所有者)和用户属于同一 Google Apps 域时才会填充。
从您的代码来看,您没有使用 Google Apps 域帐户,而是使用普通消费者 @gmail.com 帐户来发布脚本。在这种情况下getActiveUser().getEmail()
仅当您的脚本发布时才会填充以访问脚本的用户身份执行允许。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)