谷歌应用脚本:您无权调用提示
Posted
技术标签:
【中文标题】谷歌应用脚本:您无权调用提示【英文标题】:Google App script: You do not have permission to call prompt 【发布时间】:2018-05-09 23:13:37 【问题描述】:我创建了一个 google 脚本,它会在编辑列时向我显示一个提示对话框来写评论。出于某种原因,这仅适用于我的电子邮件(脚本的创建者),但对于我共享电子表格的其他用户不起作用。当我使用其他用户帐户打开脚本编辑器时,我可以在 View -> Execution Transcript 中看到错误:执行失败:您没有调用提示的权限。
我的脚本函数有一个名称“sendManualEmail”,我已经在事件 -> 来自电子表格 -> 编辑时创建了触发器
我什至只为该脚本创建了一个新项目,并询问我使用我的帐户发送电子邮件的权限,但仍然无法为其他用户工作。我已经阅读了一些其他类似的主题,但我仍然无法修复我的问题。所以提前感谢您的任何评论!
【问题讨论】:
他们需要某种事件来启动 OAuth 流程。可以像function setup() Broswer.msgBox("Hello World")
一样简单地启动授权步骤。
Google Sheets OnEdit() - You do not have permission to call showModalDialog的可能重复
【参考方案1】:
您需要您的用户授权您的脚本。为此,请创建一个在 onOpen() 上激活的菜单。单击时,发送一个消息框,确保您的用户必须授权您的脚本才能看到该消息。
在脚本顶部粘贴以下内容:
/** @OnlyCurrentDoc */
function onOpen()
var ui = SpreadsheetApp.getUi();
ui.createMenu('myName') // your name
.addItem("Activate myName's script", 'activateMyStuff')
.addToUi();
function activateMyStuff()
browser.msgBox('Script is activated! thanks.');
重要提示:当您的用户点击菜单时,他们也会被提示授权您的脚本以及脚本页面上的所有权限。确保你清理了那个脚本,否则你的用户可能不得不授权奇怪的事情——而且很可能不会。请使用备用电子邮件地址对其进行测试,看看其他人会看到什么。
最后,考虑将您的脚本作为插件发布。这将使您的用户更容易授权和使用您的作品。
【讨论】:
嗨 Antoine,我照你说的做了 (drive.google.com/open?id=1WuBElHXcXmNXRG6MsF_vQ6ar49y6rWDa) 但似乎只有在我编辑单元格然后我点击菜单后才有效:drive.google.com/open?id=10iUHXit3WyGDa1qJjOHnsNEoZh42NwLx 第一次点击它询问的菜单我的许可等一切都设置好了。您是否知道我们如何在编辑单元格时调用它,而不是在每次创建菜单时单击?在此先感谢安托万!【参考方案2】:您是否在同一个浏览器中登录了多个 Google 帐户?
当多个帐户在同一个浏览器会话中获得授权时,Google Scripts 内部有时可能无法按预期工作。尝试注销除拥有该脚本的帐户之外的所有帐户。
【讨论】:
以上是关于谷歌应用脚本:您无权调用提示的主要内容,如果未能解决你的问题,请参考以下文章