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

Posted

技术标签:

【中文标题】允许其他用户执行 google 电子表格脚本【英文标题】:Allow other users to execute google spreadsheet scripts 【发布时间】:2014-02-12 17:17:52 【问题描述】:

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

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

我正在使用onEdit() 触发器,显然来宾用户没有执行它们的权限。我是否必须进行一些配置才能使其工作?

谢谢

【问题讨论】:

【参考方案1】:

不是真正的解决方案,而是一些观察结果: 我制作了一个小脚本并在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),但如果您是匿名的,则可以使用此脚本。 在旧的电子表格中,颜色应用于更改的单元格,但在匿名模式下不起作用。

【讨论】:

以上是关于允许其他用户执行 google 电子表格脚本的主要内容,如果未能解决你的问题,请参考以下文章

仅通过 Google Apps 脚本值修改 Google 电子表格

Apps 脚本允许用户将数据发送到他们无法查看的电子表格?

使用 Google 电子表格脚本使用 getactiveuser 查找用户名

我找不到我创建的Google脚本(未附加到电子表格)

从移动应用程序执行 Google Apps 脚本功能

如何在电子表格中的日历谷歌中获得执行操作的权限