首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“需要授权”和@OnlyCurrentDoc

“需要授权”和@OnlyCurrentDoc
EN

Stack Overflow用户
提问于 2020-02-20 20:28:52
回答 1查看 749关注 0票数 0

如果被调用的函数是自己内置的应用程序脚本文件,使用@OnlyCurrentDoc作用域,并且所使用的方法完全在活动表的本地执行,那么您能避免Google表上的“授权要求”吗?

下面是要点:我想从Google表上的自定义菜单中调用一个函数。该函数获取活动工作表,并在顶部插入一个新行,其中包含一些预先填充的值(相对于工作表):

代码语言:javascript
复制
function addNewPO() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  var data = sheet.getRange('PO Numbers!A3').getValue();
  var nextPONum = data+1;

  sheet.insertRowsBefore(3,1);  // This inserts a row after the first row  
  sheet.getRange('PO Numbers!A3').setValue(nextPONum);     // set next PO number
  sheet.getRange('PO Numbers!C3').setValue(new Date());    // set current date
  sheet.getRange('PO Numbers!B3').activate();              // set final focus
}

另外,我将@OnlyCurrentDoc行放在脚本的顶部,以缩小范围:

代码语言:javascript
复制
 /**
 * @OnlyCurrentDoc
 */

我想从一个自定义菜单中调用这个命令:

代码语言:javascript
复制
function onOpen() {
  var spreadsheet = SpreadsheetApp.getActive();
  var menuItems = [
    {name: 'add new PO...', functionName: 'addNewPO'}
  ];
  spreadsheet.addMenu('Purchase Orders', menuItems);
}

但正如您可能怀疑的,它提示“授权是必需的”

我不确定“授权所需”是否是运行任何脚本的飞行前要求,或者如果再加上几行限制性逻辑,就会被认为是沙箱,以避免明确授权其高度本地化的行为。

谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2020-02-20 20:40:27

脚本需要授权才能访问活动电子表格。在没有任何授权的情况下在当前文件中进行操作的唯一方法是通过简单触发器:onOpen或onEdit或自定义函数。通过菜单或其他方式对脚本函数的任何直接调用都需要授权并触发auth流。您可以通过复选框利用onEdit触发脚本。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60328033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档