Google Apps脚本 - .getActiveUser()不返回用户访问权限表单

时间:2014-03-21 18:59:20

标签: google-apps-script

扩展项目我正在努力,并且我试图获取提交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

部分"权限和脚本类型"表示"表格"脚本以"用户在键盘上运行"。

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

我想念它是如何工作的吗?我是否可以实际获取域中其他人访问表单的用户信息?

1 个答案:

答案 0 :(得分:1)

Session.getActiveUser()getRespondentEmail()的方法{{1}}不同。

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