谷歌应用脚​​本:您无权调用提示

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 内部有时可能无法按预期工作。尝试注销除拥有该脚本的帐户之外的所有帐户。

【讨论】:

以上是关于谷歌应用脚​​本:您无权调用提示的主要内容,如果未能解决你的问题,请参考以下文章

谷歌应用脚​​本超时 ~ 5 分钟?

谷歌应用脚​​本没有循环

丢失谷歌应用脚​​本项目

谷歌应用脚​​本:是不是可以在发送共享通知的同时限制文件的共享设置?

如何使用谷歌应用脚​​本发送电子邮件草稿

使用谷歌应用脚​​本更新数据验证规则时如何保留原始范围