匿名用户不会显示Google电子表格自定义菜单

时间:2013-06-14 08:42:36

标签: google-apps-script google-sheets

我注意到匿名用户即直接从网址访问电子表格的用户(链接到共享)不会显示Google电子表格*自定义菜单(请参阅下面的代码);你需要先签字。
*电子表格是共享的,权限是“有链接的任何人都可以编辑”。

这是预期的行为吗? 是否有任何解决方法可以让用户无需先登录即可使用自定义菜单?

代码(来自Google)**:

function myOnOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [ {name: "Say Hi", functionName: "sayHi"},
                      {name: "Say Hello", functionName: "sayHello"} ];
  ss.addMenu("Tutorial", menuEntries);
}

function sayHi() {
  Browser.msgBox("Hi");
}

function sayHello() {
  Browser.msgBox("Hello");
}

** onOpen函数已重命名为myOnOpen,并与可安装的触发器相关联。我已经验证它是在电子表格所有者的上下文中运行的。

TIA,

奥利弗

2 个答案:

答案 0 :(得分:2)

answer+Samantha到Google文档帮助论坛中的类似主题

  

要使脚本在Google表格上运行,必须记录用户   in并拥有“可以编辑”的权利。这意味着匿名用户会   无法运行脚本。

     

如果您希望将此功能添加到脚本,我   建议导航到Google Developers的Apps脚本支持   页面并按“发送反馈”按钮。

注意:我刚刚在another answer中将相同的引用发布到类似的问题(Showing sidebar for viewers)。

答案 1 :(得分:-1)

来自Apps Script Custom Function Docs

  

权限和自定义函数

     

自定义函数可以从当前的电子表格中读取数据   调用SOAP,UrlFetch和Google Translate等匿名服务。   匿名服务是一种不需要用户的服务   要运行的凭据。

     

但是,自定义函数对其他函数有一些限制   没有。例如,自定义函数以静默方式运行而不是   允许访问用户特定的服务。用户特定的服务是   与特定用户关联的服务,例如Google日历。   用户特定服务可以访问私人数据,例如Google   日历,或可以充当用户,执行发送等任务   电子邮件。

话虽如此,我不确定如何确定哪些服务是用户凭证限制的。

祝你好运,

雅各