【问题标题】:Google spreadsheet custom menus are not displayed for anonymous users匿名用户不会显示 Google 电子表格自定义菜单
【发布时间】:2020-05-24 04:19:30
【问题描述】:

我注意到,匿名用户(即直接从 URL(共享链接)访问电子表格的用户)不会显示 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,

奥利维尔

【问题讨论】:

    标签: google-apps-script google-sheets gs-installable-triggers


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      来自Apps Script Custom Function Docs

      权限和自定义函数

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

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

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

      祝你好运,

      雅各布

      【讨论】:

      • 自定义功能与自定义菜单不同。
      猜你喜欢
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      相关资源
      最近更新 更多