【问题标题】:Failing to get a file in Google Apps Script using the Drive API无法使用 Drive API 在 Google Apps 脚本中获取文件
【发布时间】:2021-06-12 01:33:42
【问题描述】:

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

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

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

GoogleJsonResponseException:对 drive.files.get 的 API 调用失败 错误:找不到文件:1eMIUTEmpvzN5a3kK6PWbK4W8RCkbNOSxxxxxxxxxxx

(匿名)@List Files.gs:2

任何想法为什么它不起作用?

【问题讨论】:

    标签: google-apps-script google-drive-api


    【解决方案1】:

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

    发件人:

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

    收件人:

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

    参考:

    【讨论】:

    • 你是个天才。就是这样。我可能是盲人,但我在 Google 的参考资料中的 get() 方法中没有找到第二个参数(您发布的链接,我已经顺便看到了)。无论如何,谢谢
    • @Adriano_Pinaffo 感谢您的回复。我很高兴你的问题得到了解决。关于supportsAllDrives,可以看官方文档的解释。 Ref 而且,当你想知道Drive.get() 的参数时,例如,使用脚本编辑器的自动完成怎么样?在这种情况下,您可以看到get(fileId: string, optionalArgs: Object)。这样,您可以看到optionalArgs 的第二个参数是Parameters
    • 对...我已经看到带有“optionalArgs”的上下文菜单,并且我在参考中看到了参数列表...但我从未连接过这些点。在我看来,参考中的参数将在 GET http 请求中用作查询字符串,如https://www.googleapis.com/drive/v2/files/fileId?supportsAllDrives=true。我没有想到 Google Apps 中的“Drive Advanced Service”是一个客户端,它允许您与 Drive API 进行交互,就像您在另一个用 python 编写的应用程序中所做的那样。非常感谢
    • @Adriano_Pinaffo 感谢您的回复。似乎在 Advanced Google services 的 Drive API 的 Drive.Files.get() 中,查询参数被用作 JSON 对象,就像 {supportsAllDrives: true} 作为第二个参数一样。例如,在其他方法中,Drive.Files.list(optionalArgs) 的参数为 optionalArgs。在这种情况下,查询参数用于optionalArgs 作为 JSON 对象。这似乎是 Google 方面的当前规范。
    猜你喜欢
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多