首页 > 解决方案 > 在我的 G Suite 域中的 Google 表格中记录工作表用户名时禁用脚本授权

问题描述

我正在 Google 表格中创建一个每日任务列表,供我的员工使用。我是域管理员。

当行更改时,每个清单项目都会在 Z 列中记录时间和用户名(项目被选中)。这会跟踪日常任务何时完成,以及由谁完成。

例如“检查语音邮件”“检查传真”

-- 当用户勾选其中一项时,我希望他们的电子邮件地址或域用户名和时间戳显示在 Z 列中。

问题:每天都会有一份此表的新副本。必须每天为每个用户授权脚本(新工作表),脚本才能正常工作。

复杂因素: 我需要保持我的域 HIPAA 兼容,因此我对为我的域启用 App Marketplace 持怀疑态度。

需要的解决方案: 作为域管理员,我如何使脚本授权在我的域上使用?获得授权后,如何将其链接到主工作表和工作表的每日副本 允许我的域上的此脚本在未经个人授权的情况下捕获域用户名。

谢谢!

function onEdit(event)
{
  var now2 = Utilities.formatDate(new Date(), "EST", "E MMM dd, yyyy @ hh:mm a");
  
  SpreadsheetApp.getActiveSheet().getRange("Z1").setValue("Sheet Last Modified: " +now2);

var s = SpreadsheetApp.getActiveSheet();
  var r = s.getActiveCell();
  if( r.getColumn() != 6 ) { //checks the column
    var row = r.getRow();
    var time2 = new Date();
    var user = Session.getEffectiveUser();
    time = Utilities.formatDate(new Date(), "EST", "E MMM dd, yyyy @ hh:mm a");
    time2 = Utilities.formatDate(new Date(), "EST", "E MMM dd, yyyy");
    SpreadsheetApp.getActiveSheet().getRange('Z' + row.toString()).setValue(time+" by: "+user);
    SpreadsheetApp.getActiveSheet().getRange("Z2").setValue("Row Last Modified");
    
    
  };
  

};

标签: google-apps-scriptgoogle-sheets-api

解决方案


我想出了如何不在我的域内请求授权。我必须作为可安装触发器运行。

在 Google Script.. 转到编辑菜单,然后点击“当前项目的触发器”

然后,安装一个 on Edit Trigger...

这不再要求授权!


推荐阅读