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

问题描述:

我目前正在编辑设置为通过登录用户和匿名用户进行公共编辑的Google电子表格(我不是所有者)。我在电子表格中创建了一个脚本,并将其分配给一个图形(插入图形)。我还为图像分配了一个脚本。脚本不适用于匿名用户,Google电子表格

有两个不幸的怪事: 1)如果您是匿名的(我使用隐身模式?),图形不会出现。您可以看到该框,并右键单击该菜单(甚至删除它),但是您看不到该绘图本身。 由于某种原因,您还无法将新图画添加为匿名用户 - 您会得到'您需要许可',并且好奇'您已登录为'。图像确实出现,并且您可以添加自己的图像 2)脚本不会为匿名用户运行 - 分配给图像的脚本(可见)或附加到图形的脚本。

在图像上的脚本如下:

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

脚本,当我在我登录运行良好

我不知道这个问题是否与此答案: https://stackoverflow.com/a/18412704/1427742 但我没有足够的声望评论它(我不明白它是什么意思),我不确定它是相同的。

问题:如何让脚本显示并运行按钮脚本?

您提到的帖子有一个明确的答案:任何对电子表格服务的调用都需要授权才能工作。这暗示不包括匿名用户。请参阅Zig Mandel答案以解释如何解决该问题(转载请参阅下文)

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

+0

正如我已经说过,我不明白它......我得到更复杂的脚本(我没有发布)将无法正常工作为匿名用户访问电子表格。我不知道为什么简单的脚本(它只是调用Browser.msgbox)不起作用。我不知道为什么绘图不会出现,为什么匿名用户不能添加一个。我不知道为什么电子表格不要求许可。我不知道如何触发Google权限对话框。 '只是做任何愚蠢的API调用' - 更多细节需要抱歉! – 2014-10-11 21:01:54

+0

该脚本可以不**向匿名用户请求授权,他们必须登录才能获得授权请求。可安装的onEdit将起作用,因为它与您一样工作,而不是未记录的用户。你有没有试过我的床单?浏览器消息不起作用,这就是我使用setValue()代替的原因。 – 2014-10-11 21:46:55

+0

对不起,我将这篇文章与[另一篇文章](http://stackoverflow.com/questions/26317723/google-spreadsheet-gas-trigger-not-firing-for-anonymous-editors)关于同一主题,请阅读它以获得关于授权的更详细的答案。关于“虚拟函数”,它表示从菜单调用的函数**,它除了触发Google脚本授权请求外什么也不做。 – 2014-10-11 22:07:35