脚本不适用于匿名用户,Google 电子表格

Scripts not working for anonymous users, Google spreadsheet

我目前正在编辑一个 Google 电子表格,该电子表格设置为可供登录用户和匿名用户(我不是所有者)公开编辑。我在电子表格中创建了一个脚本并将其分配给一个绘图(插入绘图)。我还为图像分配了一个脚本。

有两个不幸的奇怪之处:
1)如果您是匿名的(我使用隐身模式?),则不会出现绘图。您可以看到该框,然后在菜单中右键单击它(甚至将其删除),但是您看不到绘图本身。
由于某种原因,您也无法以匿名用户的身份添加新绘图 - 您会得到"您需要许可"和奇怪的"您以 .\\ 身份登录"。图像确实出现了,您可以添加自己的图像
2) 脚本不会为匿名用户运行 - 分配给图像(可见)的脚本或附加到绘图的脚本。

图片上的脚本如下:

1
2
3
function messageBarnImage() {
  Browser.msgBox("there is a message here")
}

脚本在我登录时运行良好。

我想知道这个问题是否与这个答案有关:
https://stackoverflow.com/a/18412704/1427742
但我没有足够的声誉来评论它(我不明白它的意思)而且我不确定它是一样的。

问题:如何将我的脚本转换为按钮脚本以显示和运行?


您引用的帖子有明确的答案:任何对电子表格服务的调用都需要授权才能工作。这隐含地排除了匿名用户。有关如何解决该问题的说明,请参阅 Zig Mandel 答案(转载如下)

按钮将在用户权限下运行。如果它是匿名的,如果它需要任何 api 权限(比如阅读电子表格),它就不会运行,因为没有用户。对于非匿名用户,您需要添加一个菜单项来触发 google 权限对话框(只需从它执行任何愚蠢的 api 调用)。用户同意后就可以点击图片按钮