javascript - Google Apps 脚本 - 检索用户名

标签 javascript google-apps-script

希望这对您有经验的开发人员来说是一个简单的过程。我正在尝试使用 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/

相关文章:

javascript - 使用 jQuery 设置值时 ng-model 不起作用

javascript - 为什么在背景变化之前出现警报?

javascript fetch 无法捕获 404 错误

javascript - Google 表格脚本 - 无法读取属性 1.0?

具有多个条件的 JavaScript 运算符

Javascript/Jquery - 在选项卡后重置文本框 View 区域

javascript - proxychains 无法加载进程?

javascript - 在 Google 电子表格中,当用户单击并激活某个单元格后,如何根据另一个单元格的值设置一个单元格的值?

javascript - 从 DocsList 迁移到 DriveApp

google-apps-script - 我的脚本的项目属性中列出了额外的范围