3

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

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

代码(来自谷歌)**:

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,

奥利维尔

4

2 回答 2

2

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

为了让脚本在 Google 表格上运行,用户必须登录并拥有“可以编辑”权限。这意味着匿名用户将无法运行脚本。

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

注意:我刚刚在类似问题的另一个答案中发布了相同的引用(为查看者显示侧边栏)。

于 2016-05-02T20:54:55.253 回答
-1

来自Apps 脚本自定义函数文档

权限和自定义函数

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

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

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

祝你好运,

雅各布

于 2013-06-20T14:40:56.837 回答