Google电子表格脚本,云端硬盘中的文件访问权限,“您无权调用...”

时间:2016-05-01 07:51:57

标签: javascript google-apps-script permissions google-sheets google-drive-api

我有一张工作表,我需要获取位于我的Google驱动器中的文件的ID。 我写了下面的脚本:

function get_id_pdf() {
  var nom='INV432-altaïr-Famille XXX-XXX Marie-03-2016.pdf';
  var files = DriveApp.getFilesByName("'"+nom+"'");
  while (files.hasNext()) {
    var file = files.next();
    var name = file.getName();
    var type = file.getMimeType();
    var url = file.getUrl();
    var id = file.getId();
    // Logger.log(file.getId());
    return file.getId();
  }
}

如果我在脚本编辑器中执行它(使用run按钮),它运行良好(我得到了日志的id)。 但是,如果我从Google表格的单元格(单元格:=get_id_pdf())中调用脚本,则会收到错误消息:

  

您无权调用getFilesByName ”(见图片)

我当然拥有访问此文件的所有权限(它位于我自己的驱动器中,并且该文件已由我创建)。

有人有想法吗?

问候。

1 个答案:

答案 0 :(得分:0)

您不能以匿名用户身份调用需要用户授权的服务,这是自定义函数执行的操作。您需要将行为放入自定义菜单或侧边栏中,以便用户可以授权。

Authorization Documentation

Custom Function Documentation

  

如果您的自定义函数抛出错误消息 "您没有   允许调用X服务。" ,该服务需要用户授权   因此不能用于自定义功能。