首页 > 解决方案 > Google Docs Add-on 仅适用于一个帐户

问题描述

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

ScriptError: Action not allowed 或

ScriptError:需要授权才能执行该操作

应该做些什么来避免这种情况,以便任何帐户都可以使用该插件?

标签: google-apps-scriptgoogle-docs

解决方案


它与授权模式有关。因此浏览器中的其他帐户没有为加载项提供适当的权限。您需要编辑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();
 }

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


推荐阅读