Javascript 谷歌应用程序脚本-检索用户名

Javascript 谷歌应用程序脚本-检索用户名,javascript,google-apps-script,Javascript,Google Apps Script,这将是一个很容易为您经验丰富的开发人员之一。我正在尝试使用Google Apps脚本服务获取我的Google站点的登录用户的用户名。我可以让电子邮件显示得很好,但是当我尝试使用substring方法将其缩短为用户名时,会出现以下错误 TypeError:在对象中找不到函数子字符串email@email.com. (第4行,文件“getusername”) 我理解为什么会出现此错误,但不确定如何修复它。下面是我的代码 function doGet() { var userEmail

这将是一个很容易为您经验丰富的开发人员之一。我正在尝试使用Google Apps脚本服务获取我的Google站点的登录用户的用户名。我可以让电子邮件显示得很好,但是当我尝试使用substring方法将其缩短为用户名时,会出现以下错误

TypeError:在对象中找不到函数子字符串email@email.com. (第4行,文件“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
}
函数doGet(){
var userEmail=Session.getEffectiveUser();
var username=userEmail.substring(0,userEmail.indexOf(“@”);
var HTMLString=“以“+userEmail+”的身份登录,”;
HTMLOutput=HtmlService.createHtmlOutput(HTMLString);
返回HTMLOutput
}
我猜,因为变量
userEmail
是动态的,取决于登录的用户,所以变量
username
在执行之前无法查看电子邮件地址

任何帮助都将不胜感激

这里是完整的Javascript新手

谢谢

杰克改变:

var userEmail = Session.getEffectiveUser();
致:


如果查看
Session.getEffectiveUser()
的文档,您将看到“return”是什么。我很长一段时间都没有注意到这一点。但是,您需要始终知道返回的内容。有些返回类型是:字符串、对象、整数或类。根据返回的内容,这将决定您可以进一步做什么。许多初学者注意到事物之间有一个周期,并且能够理解他们需要用一个周期来修补事物。但他们不知道这段时间是干什么的。这段时间被称为点运算符,每个有点运算符的地方基本上都是一个过程中的另一个步骤。您正在将多个操作“链接”在一起。在代码中:
Session.getEffectiveUser().getEmail()
有两个句点(点运算符)和两个单独的事件发生,每个事件都有不同的返回值。
getEmail()
方法返回一个字符串。文档说明
getEffectiveUser()
返回一个“User”,但是如果您转到文档中的“User”,您会看到它被描述为一个“Class”。要理解什么是“类”,你需要做一些研究

您正在尝试缩短对象,而不是字符串。看看有没有办法。是的!非常感谢你。这正是我所需要的:D你能解释一下为什么这样做有效吗?再次感谢。@JackSmith为什么有用?使用对象的方法访问对象的属性?这就是方法的作用。返回给定
用户
对象的
电子邮件
属性的值。请参阅添加的解释。非常感谢您的解释@SandyGood Really Attracted:d您可以通过单击绿色大复选标记将答案标记为正确。
var userEmail = Session.getEffectiveUser().getEmail();