我注意到匿名用户即直接从网址访问电子表格的用户(链接到共享)不会显示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,
奥利弗
答案 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 日历,或可以充当用户,执行发送等任务 电子邮件。
话虽如此,我不确定如何确定哪些服务是用户凭证限制的。
祝你好运,
雅各