Google Apps脚本 - 检索用户名

时间:2018-03-22 12:41:23

标签: javascript google-apps-script

对于经验丰富的开发人员来说,这对您来说很有帮助。我尝试使用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
}

我猜测因为变量userEmail是动态的,具体取决于登录用户,变量username在执行之前无法看到电子邮件地址?

非常感谢任何帮助。

在这里完成Javascript新手。

由于

杰克

1 个答案:

答案 0 :(得分:1)

变化:

var userEmail = Session.getEffectiveUser();

为:

var userEmail = Session.getEffectiveUser().getEmail();

如果你看一下Session.getEffectiveUser()的文档,你就会看到&#34;返回&#34;是。很长一段时间我都没有太注意它。但是,您需要始终知道返回的内容。一些返回类型是:字符串,或对象,或整数,或类。根据返回的内容,这将决定您可以进一步做什么。很多初学者都注意到事物之间有一段时间,并且能够发现他们需要用一段时间来拼凑东西。但他们真的不知道那个时期是什么。那个时期被称为点运算符,每个地方都有一个&#34;点运算符&#34;基本上是一个过程中的另一个步骤。你&#34; chaining&#34;多个操作在一起。在代码中:Session.getEffectiveUser().getEmail()有两个句点(点运算符)和两个单独的事物发生,每个都有不同的返回值。 getEmail()方法返回一个字符串。文档指出getEffectiveUser()返回&#34;用户&#34;但是如果你去&#34; User&#34;的文档。你会把它描述为&#34; Class&#34;。要了解什么是&#34; Class&#34;是的,你需要做一些研究。