出现这个问题是由于在将Apps Script作为附加组件部署时,因为安全设置限制,无法访问一些必须的资源。解决此问题的方法是添加必要的结构和代码以授予所需的权限,例如设置授权范围,重构代码以确保不需要特权来访问受限制的资源等。
以下是一个示例代码,演示如何将授权范围限制为需要访问Google Drive:
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
ui.createAddonMenu()
.addItem('Open Sidebar', 'showSidebar')
.addToUi();
// Ensure that the user has authorized the script to access Google Drive.
try {
DriveApp.getRootFolder();
} catch(err) {
ui.alert('Please authorize this script to access Google Drive.');
}
}
function showSidebar() {
var html = HtmlService.createHtmlOutputFromFile('Sidebar')
.setTitle('My Sidebar')
.setWidth(300);
SpreadsheetApp.getUi().showSidebar(html);
}
在这个示例中,我们添加了 onOpen() 函数,它检查是否已经获得Google Drive的授权。如果用户没有授权,则会弹出一个消息提示框,要求用户先授权才能继续使用附加组件。
这应该可以解决Apps Script部署为附加组件时引发权限异常的问题。