0

我有一张工作表,我需要在其中获取位于我的 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)。=get_id_pdf()但是,如果我从我的 Google-Sheet的单元格(在单元格中:)调用脚本,则会收到错误消息:

您无权调用 getFilesByName ”(见图)

我当然拥有访问该文件的所有授权(它在我自己的驱动器中,并且该文件是由我创建的)。

有人有想法吗?

问候。

4

1 回答 1

0

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

授权文件

自定义函数文档

如果您的自定义函数抛出错误消息“您无权调用 X 服务”。,该服务需要用户授权,因此不能在自定义功能中使用。

于 2016-05-01T09:39:40.667 回答