You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在HtmlService网页中获取活跃用户邮箱的方法求助

问题解决:Google Apps Script异步获取用户邮箱返回null的问题

问题原因

google.script.run是异步执行的,你当前的客户端代码试图同步将它的返回值赋值给user变量,但此时服务端请求还未完成,所以user会是null。必须通过withSuccessHandler的回调函数来处理服务端返回的结果。

修改后的客户端代码

把需要使用用户邮箱的逻辑全部放在成功回调函数内:

google.script.run.withSuccessHandler(function(userEmail) {
  console.log('User: ' + userEmail);
  // 在这里执行保存数据的操作,将userEmail作为操作用户邮箱记录
  // 示例:调用保存数据的服务端函数
  // google.script.run.saveUserData(userEmail, 其他需要保存的数据);
}).getUser();

如果是绑定到保存按钮的点击事件,代码可以这样写:

// 假设保存按钮的id是saveBtn
document.getElementById('saveBtn').addEventListener('click', function() {
  google.script.run.withSuccessHandler(function(userEmail) {
    console.log('正在保存数据,操作用户:' + userEmail);
    // 执行保存逻辑,把用户邮箱传入服务端保存函数
    google.script.run.saveData(userEmail, /* 你的表单数据等 */);
  }).getUser();
});

服务端代码保持不变

你的服务端代码是正常的,无需修改:

function getUser(){
  const user = Session.getActiveUser().getEmail();
  console.log('Active User: ' + user)
  return user;
}

内容的提问来源于stack exchange,提问作者onit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 11:36:13