使用驱动器 API 无法在 Google Apps 脚本中获取文件

Failing to get a file in Google Apps Script using the Drive API

我有一个 google 应用程序脚本(我用在我的一个电子表格中)。我习惯于调用 DriveApp 服务来处理文件(列出、创建、移动等),但我想获取最后修改文件的用户。在几个地方查找它,我了解到实现该目标的唯一方法是将 Drive API SDK(高级驱动服务)导入 Google Apps 脚本。我使用 official documentation 添加了它。所以,这就是我被困的地方。为了简化,请看下面的代码:

console.log(DriveApp.getFileById('1eMIUTEmpvzN5a3kK6PWbK4W8RCkbNOSxxxxxxxxxxx').getName())
console.log(Drive.Files.get('1eMIUTEmpvzN5a3kK6PWbK4W8RCkbNOSxxxxxxxxxxx').title)

第一个显示我的文件名就好了。 第二个失败:

GoogleJsonResponseException: API call to drive.files.get failed with error: File not found: 1eMIUTEmpvzN5a3kK6PWbK4W8RCkbNOSxxxxxxxxxxx

(anonyme) @ List Files.gs:2

知道为什么它不起作用吗?

根据您的脚本和 File not found 的错误,我认为在您的情况下,文件可能会放在共享驱动器中。如果我的理解是正确的,就会出现这样的错误。另一方面,当使用 DriveApp.getFileById 时,可以检索共享 Drive 中的文件。那么在你的情况下,下面的修改怎么样?

发件人:

console.log(Drive.Files.get('1eMIUTEmpvzN5a3kK6PWbK4W8RCkbNOSxxxxxxxxxxx').title)

收件人:

console.log(Drive.Files.get('1eMIUTEmpvzN5a3kK6PWbK4W8RCkbNOSxxxxxxxxxxx', {supportsAllDrives: true}).title)

参考: