【问题标题】:Google Apps Script - .getActiveUser() not returning user access formGoogle Apps 脚本 - .getActiveUser() 不返回用户访问表单
【发布时间】:2014-03-21 18:59:19
【问题描述】:

扩展我正在处理的项目,我正在尝试获取提交 Google 表单的人的用户名和电子邮件。为了将姓名和电子邮件记录到电子表格中以用于工作流程。注意:这是一个 Google Apps for Business 域。该表单具有以下设置: 1. 需要域登录才能查看此表单。 2.自动收集受访者的域用户名。 (即使这样仍然只记录我的名字)。

用于获取用户信息的代码。如果我提交表单,它会起作用。

//Grabs the Requestor's email and return it.
function giveEmail() {
  var eMail = Session.getActiveUser().getEmail();  
  return eMail;
}

//Gets the Requestor's First & Last Name and returns as whole name
function getRequestor() {
  var userFirst = UserManager.getUser(Session.getActiveUser()).getGivenName();
  var userLast = UserManager.getUser(Session.getActiveUser()).getFamilyName();
  var wholeName = userFirst +" "+ userLast;  
  return wholeName;
}

基于以下链接:Authorization for Google Services

“脚本的权限和类型”部分表示“表单”脚本作为“键盘用户”运行。

当我让域中的其他人访问表单并提交时,它会记录我的信息。附加到表单的脚本(从表单工具 > 脚本编辑器的编辑中)通过触发器运行。触发器在表单提交时从表单运行函数。

我是否想了解它是如何工作的?我真的可以获取域中其他正在访问表单的用户信息吗?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    Session.getActiveUser()getRespondentEmail() 不同,后者是FormResponse class 的一个方法。

    您应该使用后者来获取回复表单的用户的电子邮件。 activeUser 实际上是创建触发器的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      相关资源
      最近更新 更多