可安装的触发器需要获取编辑用户的电子邮件,但只能访问我的

Installable trigger needs to grab email of user who edited, but is only accessing mine

所以我有一个 spreadsheet,其中列出了通过从另一个文件导入的 运行ge 完成的工作。用户有一个经过验证的数据下拉列表,当他们 select 这项工作的状态时,它会在另一个 sheet 中搜索他们 select 编辑的工作并更新这项工作的状态。它超级简单,适用于我授予编辑权限的每个人。

我想更改它以记录编辑工作状态的用户的电子邮件,因此 运行 脚本(我们都是同一个工作区域的一部分)。我已经得到它来提取我的电子邮件并将其重复放置在需要的地方,但我无法让它访问其他人的。我尝试部署它,尽管我不完全确定我理解它是如何工作的。我已经研究过授权它,但我唯一能找到更改授权的地方是通过编辑器中的 appscript.json,但这并没有显示文档对 edit/add 所说的权限,所以我我对如何授权这个有点迷茫。

不确定这是否重要,但此脚本附加到 sheet 它从中获取编辑。我不知道这是否意味着 sheet 权限需要更改或什么。

这是完整的代码,减去标识 URL's/ID 的:

function onEdit(e) {



var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //shortens calling to the current sheet

  var dataSheet = SpreadsheetApp.openById("datafileID").getSheetByName("Data"); //shortens calling to the data file

  const status = e.value; //validated user input

  var erange = e.range; //range of edited cell
  var ecolumn = erange.getColumn(); //range column of edited cell
  var erow = erange.getRow(); //range row of edited cell

  var snRow = erow; //identifies what row to look for the store number
  var snColumn = ecolumn-2; //identifies what column to look for the store number
  var sn = sheet.getRange(snRow, snColumn).getValue(); //declares the store number as variable

  var user = e.user; //declares user as variable

  if (!e.range.isBlank()) { //searches data sheet for store and updates status and user

    var column = dataSheet.getRange("G:G").getValues();
    var uRow;
      for (var i = 0; i < column.length; i++){
        if (column[i][0] === sn) {
        uRow = i+1;
        break;
      }
    }

    dataSheet.getRange(uRow,6).setValue(status)
    
    dataSheet.getRange(uRow,5).setValue(user)


  }

 

  sheet.getActiveCell().clearContent();
}

onEdit 是简单触发器的保留名称,您不应该使用从编辑/更改可安装触发器调用此函数,因为将有两个并行执行 运行。

当使用来自同一域的 Google 个 Workspace 帐户的简单或可安装触发器时,e.user 应该 return 表示非活动用户的用户对象。

由于脚本适用于您的帐户,因此不需要额外的权限。

由于脚本不起作用,请尝试以下操作:

  1. 删除可安装触发器
  2. 更改函数名称(即respondToEdit
  3. 再次创建指向新函数名称的可安装触发器。
  4. 仔细检查电子表格共享权限是否仅设置为来自您的 Google Workspace 域的编辑者。

参考资料