我已部署了Google文档插件,但如果浏览器中有多个帐户,则仅适用于一个帐户。具体来说,它仅适用于(默认)Google帐户。其他帐户随机显示以下错误之一
ScriptError:不允许操作或
ScriptError:执行该操作需要授权
应该采取哪些措施来避免这种情况,以便任何帐户都可以使用该附加组件?
答案 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
在解决该问题之前,解决方法是从所有帐户断开连接,但无法运行该插件,或者进入隐身模式。