允许其他用户执行Google电子表格脚本

时间:2014-02-12 17:17:53

标签: google-apps-script google-sheets google-drive-api

我制作了一个简单的Google电子表格,其中包含一些脚本,可根据状态更新颜色,设置行的更新和创建日期以及其他一些控件。

当我使用自己的用户编辑它时,一切正常,但现在设置的电子表格设置为公开(通过链接访问),访问电子表格的任何其他人都会收到错误you do not have permissions to do this action

我正在使用onEdit()触发器,显然来宾用户无权执行它们。我必须配置一些东西才能使它工作吗?

感谢

1 个答案:

答案 0 :(得分:0)

不是真正的解决方案,而是索姆姆观察:
我制作了一个小脚本并在old广告new电子表格类型上对其进行了测试:

function imwatchingus(event) {
  Logger.log(JSON.stringify(event));
  try{
    if(event.value=="faux"){
      SpreadsheetApp.getActiveRange().setBackground("red");
    }
    else if(event.value=="vrai"){
      SpreadsheetApp.getActiveRange().setBackground("green");
    }
    else{
      SpreadsheetApp.getActiveRange().setBackground("blue");
    }
  }
  catch(e){}
}


function spyonme(){
  var trigs = ScriptApp.getProjectTriggers();
  var func = [];
  for (var i in trigs){
    func.push(trigs[i].getHandlerFunction());
  }
  if(func.indexOf("imwatchingus")>-1){
    return("already enrolled");
  }
  else{
    ScriptApp.newTrigger("imwatchingus").forSpreadsheet(SpreadsheetApp.getActive().getId()).onEdit().create();
    return("enrolling you");
  }
}

函数imwatchingus是将完成工作的函数(它根据文本的颜色将单元格的背景颜色设置为红色/绿色/蓝色)。
让这个功能工作我添加了一个触发器。您可以使用菜单或启动函数spyonme来执行此操作。

在新电子表格中有一个issue。只会修改第一个单元格(A1),但如果您是匿名的,则可以使用此脚本 在旧的电子表格中,颜色应用于更改的单元格,但它不能以匿名模式运行。