【问题标题】:Scripts not working for anonymous users, Google spreadsheet脚本不适用于匿名用户、Google 电子表格
【发布时间】:2014-10-11 20:02:16
【问题描述】:

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

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

图片上的脚本如下:

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

我登录后脚本运行良好。

我想知道这个问题是否与这个答案有关: https://stackoverflow.com/a/18412704/1427742 但我没有足够的声誉来评论它(我不明白它的含义),我不确定它是否相同。

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

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

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

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

    【讨论】:

    • 正如我已经说过的,我不明白...我知道更复杂的脚本(我没有发布)在访问电子表格时不适用于匿名用户。我不知道为什么更简单的脚本(只调用 Browser.msgbox)不起作用。不知道为什么图纸没有出现,为什么匿名用户不能加一张。我不知道为什么电子表格不请求许可。而且我不知道如何触发谷歌权限对话框。 '只是做任何愚蠢的 api 调用' - 需要更多细节抱歉!
    • 脚本可以向匿名用户请求授权,他们必须登录才能获得授权请求。可安装的 onEdit 将起作用,因为它可以像您一样工作,而不是未登录的用户。你试过我的床单吗?浏览器消息在其中不起作用,这就是我改用 setValue() 的原因。
    • 抱歉,我在同一主题上将这篇文章与this other post 混合在一起,请阅读它以获取有关授权的更详细答案。关于“虚拟函数”,它是指从菜单调用的函数,除了触发 Google 脚本授权请求之外什么都不做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多