在 HTML 中调用该方法时收到"You do not have permission to call getFolderByID"错误



我正在阅读Google Apps Scripts,第2版一书。 我正在学习的创建 Web 应用程序的课程要求我使用以下代码:

function doGet() {
var html = HtmlService.createTemplateFromFile('index').evaluate()
.setTitle('06 Automating Forms')
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
return html;
}

但是,当我运行此代码时,我收到"您无权调用 getFolderById"错误消息。 我不明白为什么我会收到此错误消息。此外,它说错误在第 2 行。

我正在我的索引.html文件中调用"getFolderByID"方法。 这是该代码:

<div class="body">
<div><h2>This App will allow you to create a form from a template
in Google Docs.</h2></div>
<hr>
<div id="options">
<?var files = 
DriveApp.getFolderById('0B6YzuBeNxooXSWE3Vm9WMlVnWkk').getFiles();?>
<select id='template'>
<option value="notSel">Select a Template</option>
<?while (files.hasNext()){
var file = files.next();?>
<option value="<?=file.getId()?>"><?=file.getName()?></option>
<?}?>
</select>
</div>

</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
</script>
<style>
.body{
padding: 10px;
}
</style>

有没有办法获得调用该方法的权限? 我想如果我运行代码,就会弹出一个框,允许我访问云端硬盘的该区域。

只有脚本文件能够请求授权,html文件不能。 最简单的方法是在 code.gs 文件中添加一个虚拟函数,如下所示:

function myFunction() {
DriveApp.getFolderById('0B6YzuBeNxooXSWE3Vm9WMlVnWkk');
}

从脚本编辑器运行它,您将按预期获得授权请求。

相关内容

最新更新