Google apps script 谷歌文档附加组件仅适用于一个帐户

Google apps script 谷歌文档附加组件仅适用于一个帐户,google-apps-script,google-docs,Google Apps Script,Google Docs,我已经部署了一个Google Docs附加组件,但如果浏览器中有多个帐户,它只适用于一个帐户。具体来说,它只适用于默认的Google帐户。其他帐户随机显示以下错误之一 ScriptError:不允许执行操作,或者 ScriptError:执行该操作需要授权 应该如何避免这种情况,以便任何帐户都可以使用该附加组件?这与。因此,浏览器中的其他帐户没有为该加载项授予适当的权限。您需要编辑OnOpen以处理用户尚未授权加载项的授权模式。见下例: function onOpen(e) { var

我已经部署了一个Google Docs附加组件,但如果浏览器中有多个帐户,它只适用于一个帐户。具体来说,它只适用于默认的Google帐户。其他帐户随机显示以下错误之一

ScriptError:不允许执行操作,或者

ScriptError:执行该操作需要授权

应该如何避免这种情况,以便任何帐户都可以使用该附加组件?

这与。因此,浏览器中的其他帐户没有为该加载项授予适当的权限。您需要编辑OnOpen以处理用户尚未授权加载项的授权模式。见下例:

 function onOpen(e) {
   var menu = SpreadsheetApp.getUi().createAddonMenu();
   if (e && e.authMode == ScriptApp.AuthMode.NONE) {
     // Add a normal menu item (works in all authorization modes).
     menu.addItem('Start workflow', 'startWorkflow');
   } else {
     // Add a menu item based on properties (doesn't work in AuthMode.NONE).
     var properties = PropertiesService.getDocumentProperties();
     var workflowStarted = properties.getProperty('workflowStarted');
     if (workflowStarted) {
       menu.addItem('Check workflow status', 'checkWorkflow');
     } else {
       menu.addItem('Start workflow', 'startWorkflow');
     }
     // Record analytics.
     UrlFetchApp.fetch('http://www.example.com/analytics?event=open');
   }
   menu.addToUi();
 }

使用下面的代码,默认帐户将看到“检查工作流状态”选项,而其他帐户将只看到“启动工作流”。请注意,您的问题与浏览器中的多个帐户无关,而是与同一文档中的多个用户有关。

在对user8214858的答案进行评论后,这不是正确的答案,OP描述的脚本错误的真正原因是Google应用程序脚本上的一个已知问题,多个Google帐户在同一浏览器会话中同时连接

谷歌问题跟踪程序中的问题页面链接:


在修复之前,解决方法是断开与所有帐户的连接,除了运行加载项所需的帐户,或者转到匿名模式。

是否批准所有帐户使用该加载项?运行未经批准的代码将面临巨大的安全风险。应用程序脚本中存在一个错误,如果用户登录到多个帐户,则会导致应用程序脚本代码不知道要使用哪个登录帐户。如果默认帐户是授予授权的帐户,则一切正常。但是,如果授权加载项的帐户不是默认帐户,那么它将无法工作,并且您将收到错误。它在某处。我根据你的回答检查了附加组件的行为。这就是我发现的。1] 附加模块仅适用于同一浏览器中的默认帐户和默认帐户拥有的文档。2] 在任何情况下,默认帐户以外的帐户都不能使用附加组件,除非存在默认帐户与其他帐户共享的文档3]其他帐户可以在匿名模式下使用附加组件。是否有任何方法或解决方法可以使附加组件的所有帐户的环境都不同?因为可以在同一浏览器上使用不同的帐户编写文档,那么为什么不使用附加组件呢?我认为您所发现的对于在同一浏览器帐户中多次登录是有效的。您可以创建多个浏览器帐户,每个Google帐户一个,而不是在同一个浏览器帐户中有多个登录:。哦,你实际上有多个别名或者在同一个谷歌账户下?那么你发现的是有效的。否则,对于不同的帐户,加载项应该可以正常工作。创建不同的浏览器帐户配置文件可以解决此问题。我希望不是这样,但现在还可以。非常感谢。这是一个非常讨厌的bug,我们的用户对此抱怨很多。