OpenByUrl抛出错误:您无权调用openByUrl(第39行,文件“Code”)

时间:2013-07-17 23:35:02

标签: google-apps-script

我的Google电子表格中有一个脚本可打开Goog​​le文档,并在表格的某个单元格中返回文字,如下所示:

function getItemStatus(docUrl) {
   var doc = DocumentApp.openByUrl(docUrl);
   var docBody = doc.getBody();
   var docTbls = docBody.getTables();
   var itmTbl = docTbls[0];
   var itmStatus = itmTbl.getCell(3,1).getText();
   return itmStatus;  
}

当我尝试在电子表格中运行该功能时,它会返回以下错误:

  

错误:您无权调用openByUrl(第39行,文件“代码”)

如果我创建另一个函数来直接调用上面的函数它可以正常工作并返回我之后的值。

function testItemGet() {
   var docUrl = ("...");
   itmStr = getItemStatus(docUrl);
   Logger.log("The item's value is " + itmStr)
}

结果日志文件:

  

[13-07-17 19:27:39:130 EDT]开始执行

     

[13-07-17 19:27:39:387 EDT] DocumentApp.openByUrl([...])[0.253秒]

     

[13-07-17 19:27:39:388 EDT] Document.getBody()[0秒]

     

[13-07-17 19:27:39:388 EDT] Body.getTables()[0秒]

     

[13-07-17 19:27:39:388 EDT] Table.getCell([3,1])[0秒]

     

[13-07-17 19:27:39:389 EDT] TableCell.getText()[0秒]

     

[13-07-17 19:27:39:389 EDT] Logger.clear()[0秒]

     

[13-07-17 19:27:39:389 EDT] Logger.log([项目的值是延期,[]])[0秒]

     

[13-07-17 19:27:39:390 EDT]执行成功[0.256秒总运行时间]

根据我的Google搜索,只要我拥有该文档的编辑或所有者权限,我就应该能够做到这一点。

我是Google Apps Scripting的新手,所以请保持温和。 :)

提前感谢您的帮助和耐心!

1 个答案:

答案 0 :(得分:1)

自定义函数以有限的权限运行,无法利用依赖用户凭据的服务,包括DocumentApp。

https://developers.google.com/apps-script/execution_custom_functions#permissions