我认为你是对的 user3550481。我复制了你上面描述的内容并制作了这个电子表格来测试你报告的内容。它有一个“我的菜单”菜单,应该出现在打开时,以及一个带有分配给相同功能的脚本的按钮。共享设置为“任何知道链接的人”还是“公开”都没有任何区别。我什至尝试将脚本发布为任何人都可以访问的网络应用程序,甚至是匿名的——我没想到这会产生任何影响,因为它显然没有 doGet 函数——但它没有。
当我以匿名用户身份进行测试时,即未登录任何 Google 帐户时,“我的菜单”菜单没有出现,并且如您所说,该按钮已失效。
一旦我登录了一个谷歌帐户,两者都有效,但有趣的是,修订历史显示结果是匿名的。
我很想看看是否有人提供比向问题跟踪器报告更好的解决方案——如果你不提供,我可能会。同时,每当您与您的用户分享链接时,最好的办法是解释他们需要登录 Google 帐户才能正常工作——毕竟这是免费的。
电子表格中使用的脚本:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var myMenu = [ {name: 'My Menu', functionName: 'myMenu'}];
ss.addMenu('My Menu', myMenu);
}
function myMenu() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('Sheet1');
var lr = sh.getLastRow()+1;
sh.getRange(lr, 1).setValue('Clicking My Menu worked!');
}