google-apps-script - Google Docs Add-on 仅适用于一个帐户
问题描述
我已经部署了一个 Google Docs 插件,但如果浏览器中有多个帐户,它只适用于一个帐户。具体来说,它仅适用于(默认)Google 帐户。其他账户随机显示以下错误之一
ScriptError: Action not allowed 或
ScriptError:需要授权才能执行该操作
应该做些什么来避免这种情况,以便任何帐户都可以使用该插件?
解决方案
它与授权模式有关。因此浏览器中的其他帐户没有为加载项提供适当的权限。您需要编辑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();
}
使用下面的代码,“默认”帐户将看到“检查工作流程状态”选项,但其他帐户只会看到“启动工作流程”。请注意,您的问题与浏览器中的多个帐户无关,而是与同一文档中的多个用户有关。
推荐阅读
- firefox - 在 Firefox Desktop 和 Firefox Android 之间传输/同步 WebExtension 数据
- forms - MS Access 表单无法在不同的显示器上正确居中
- javascript - Javascript Array 仅使用迭代的最后一个值
- java - 从 jdk 11 切换到 jdk 1.8.0_191 时出现 JNI 错误
- python - pkg_resources.DistributionNotFound:未找到“pipenv==2018.10.13”分发,应用程序需要该分发
- webpack - 如何使用来自 pictute 源 HTML 标签的 Webpack 解析 .webp 文件?
- php - 在数组中插入多个数组以存储在购物车中 CodeIgniter
- javascript - Redux 测试 - getState() TypeError:无法读取未定义的属性“startDateIndex”
- java - Hibernate-Search flushToIndexes 导致 java.lang.OutOfMemoryError(堆空间)
- vb.net - VB 错误:重载解析失败,因为没有可访问者接受此数量的争论