从自己的驱动器访问文件时,如何使用较窄的Google Apps脚本授权范围

时间:2019-03-23 04:09:23

标签: google-apps-script google-sheets

我正在制作Google表格插件,并使用以下方法将模板表格从Google驱动器复制到用户当前的Google电子表格中:

let ss = SpreadsheetApp.getActive(); 
let source = SpreadsheetApp.openById(TemplateSpreadsheetId); //  <-- gets scope error
let newSheet = source.getSheetByName(mainSheetName).copyTo(ss);

当我在appsscript.json中指定范围https://www.googleapis.com/auth/spreadsheets“时,它可以工作,但是有一种方法可以使用更窄的Google Apps脚本授权范围?除此之外,我只需要@OnlyCurrentDoc或https://www.googleapis.com/auth/spreadsheets.currentonly

之所以如此重要,是因为用户必须同意我的插件可以“查看,编辑,创建和删除Google云端硬盘中的电子表格”,这听起来有点吓人我。

1 个答案:

答案 0 :(得分:1)

根据https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#openbyidid

  

授权
  使用此方法的脚本需要使用以下一项或多项授权   以下范围:

     

我认为...仅当id是脚本容器之一时,... currentonly范围才起作用