我想收到用户打开文件的电子邮件:
这是我获取电子邮件的代码,但是此代码只能获取与我的域具有相同域的用户的电子邮件,其他域将返回空:
function onOpen(e) {
Browser.msgBox("hi " +Session.getActiveUser().getEmail());
}
为什么无法在域外获取当前电子邮件?
可以获取外部域的电子邮件吗?
答案 0 :(得分:2)
您可以获取电子邮件,但不能在onOpen()函数中获取电子邮件,并且在文档[1]中没有详细说明的其他情况下也无法获取电子邮件:
可用的电子邮件地址的情况有所不同: 例如,用户的电子邮件地址在任何情况下均不可用 允许脚本在未经该用户授权的情况下运行,例如 简单的onOpen(e)或onEdit(e)触发器,这是Google中的自定义函数 表格或部署为“以我的身份执行”(即已授权)的网络应用 由开发人员而非用户)。但是,这些限制 如果开发人员自己运行脚本或 与用户属于同一G Suite域。
在您的情况下,一种可能的解决方法是创建一个菜单[2],单击该菜单会调用您想要的功能,但是以前它将显示同意屏幕以允许所需的权限。示例:
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.createMenu('Actions')
.addItem('Welcome', 'showEmail')
.addToUi();
}
function showEmail() {
Browser.msgBox("hi " + Session.getActiveUser().getEmail());
}
[1] https://developers.google.com/apps-script/reference/base/user