希望这对您有经验的开发人员来说是一个简单的过程。我正在尝试使用 Google Apps 脚本服务获取我的 Google 站点的已登录用户的用户名。我可以让电子邮件正常显示,但是当我尝试使用子字符串方法缩短为用户名时,出现以下错误。
TypeError: Cannot find function substring in object email@email.com. (line 4, file "getusername")
我明白为什么会收到此错误,但不确定如何解决。下面是我的代码
function doGet() {
var userEmail = Session.getEffectiveUser();
var username = userEmail.substring(0, userEmail.indexOf("@"));
var HTMLString= "<body> <h2> Logged in as " + userEmail +",</h2></body>";
HTMLOutput = HtmlService.createHtmlOutput(HTMLString);
return HTMLOutput
}
我猜是因为变量 userEmail
是动态的,具体取决于登录用户,所以变量 username
在执行之前无法看到电子邮件地址?
如有任何帮助,我们将不胜感激。
完整的 Javascript 新手在这里。
谢谢
jack
最佳答案
改变:
var userEmail = Session.getEffectiveUser();
到:
var userEmail = Session.getEffectiveUser().getEmail();
如果您查看Session.getEffectiveUser()
的文档,您将了解“返回”是什么。很长一段时间以来,我都没有太注意这个。但是,您需要始终知道返回的是什么。一些返回类型是:字符串,或一个对象,或一个整数,或一个类。根据返回的内容,这将决定您可以进一步做什么。许多初学者注意到事物之间有一个句点,并且能够弄清楚他们需要用一个句点将事物拼凑在一起。但他们真的不知道那段时间是干什么用的。那个时期被称为点运算符,每个有“点运算符”的地方基本上都是一个过程中的另一个步骤。您将多个操作“链接”在一起。在代码中:Session.getEffectiveUser().getEmail()
有两个句点(点运算符)和两个独立的事件,每个事件都有不同的返回值。 getEmail()
方法返回一个字符串。文档指出 getEffectiveUser()
返回一个“用户”,但是如果您转到“用户”的文档,您会看到它被描述为一个“类”。要了解“类”是什么,您需要做一些研究。
关于javascript - Google Apps 脚本 - 检索用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49428976/