首页 文章

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

提问于
浏览
2

我注意到匿名用户,即直接从URL访问电子表格的用户(链接到共享),不会显示Google电子表格*自定义菜单(请参阅下面的代码);你需要先签名 .
*电子表格是共享的,权限是"Anyone with the link can edit" .

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

代码(来自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 回答

  • 1

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

    为了使脚本在Google表格上运行,用户必须登录并具有“可以编辑”权限 . 这意味着匿名用户将无法运行脚本 . 如果您希望将此功能添加到脚本中,我建议您导航到Google Developers的Apps脚本支持页面,然后按“发送反馈”按钮 .

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

  • -1

    来自Apps Script Custom Function Docs .

    权限和自定义函数自定义函数可以从当前的电子表格中读取数据,并可以调用SOAP,UrlFetch和Google Translate等匿名服务 . 匿名服务是一种不需要用户凭据运行的服务 . 但是,自定义函数具有一些其他函数没有的限制 . 例如,自定义函数以静默方式运行,不允许访问特定于用户的服务 . 用户特定服务是与特定用户相关联的服务,例如Google日历 . 用户特定服务可以访问私人数据,例如Google日历,或者可以充当用户,执行诸如发送电子邮件之类的任务 .

    话虽这么说,我不确定如何确定哪些服务是用户凭证有限 .

    祝你好运,

    雅各

相关问题