Google文档加载项仅适用于一个帐户

时间:2018-06-10 17:44:21

标签: google-apps-script google-docs

我已部署了Google文档插件,但如果浏览器中有多个帐户,则仅适用于一个帐户。具体来说,它仅适用于(默认)Google帐户。其他帐户随机显示以下错误之一

  

ScriptError:不允许操作或

     

ScriptError:执行该操作需要授权

应该采取哪些措施来避免这种情况,以便任何帐户都可以使用该附加组件?

2 个答案:

答案 0 :(得分:1)

它与authorization mode有关。因此,浏览器中的其他帐户没有为加载项提供适当的权限。您需要编辑onOpen(e)以处理用户尚未授权加载项的授权模式。见下面的例子:

 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();
 }

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

答案 1 :(得分:0)

在对user8214858答案的注释之后,这不是正确的答案,并且描述OP的ScriptError的真正原因是在同一浏览器会话中同时连接了多个Google帐户的Google Apps脚本上的已知问题。

链接到Google的问题跟踪器中的问题页面:
https://issuetracker.google.com/issues/69270374

在解决该问题之前,解决方法是从所有帐户断开连接,但无法运行该插件,或者进入隐身模式。