在 Google Apps Script 中,`File.getResourceKey()` 方法总是返回 `null`。

时间:2021-08-12 04:42:45

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

根据最近的谷歌开发者电子邮件,在 2021 年 9 月 13 日安全更新后获取某些文件和文件夹时需要指定资源键。他们说:“为了避免访问文件时出现错误,您必须将用于访问文件的代码进行更新以包括适当的资源键。”

对于文件夹,获取资源键似乎是有效的:

  var folder = DriveApp.getFolderById(folderId);
  var folderResourceKey = folder.getResourceKey();

如果我理解正确,在安全更新后,开发人员仍然可以使用此方法获取资源键(假设文件夹上有适当的共享设置)。然后我们可以将资源键硬编码到脚本中以供 getFolderByIdAndResourceKey 调用使用。

但是,当我尝试在文件而不是文件夹上执行此操作时,我一直收到“null”的结果:

  var file = DriveApp.getFileById(fileId);
  var resourceKey = file.getResourceKey();

我已经尝试了几个文件,包括我拥有并且创建的数月前的文件,因此我不认为这是该问题的实例:

Google Drive Android API 中 DriveId.getResourceId()的不可预测结果

API 文档表明,对于文件和文件夹,它应该以相同的方式工作:

https://developers.google.com/apps-script/reference/drive/file?hl=en#getResourceKey()

https://developers.google.com/apps-script/reference/drive/folder?hl=en#getresourcekey

我还尝试了 getTargetResourceKey,以防文件是链接,但结果仍然是 null:

https://developers.google.com/apps-script/reference/drive/file?hl=en#gettargetresourcekey

在加载文件的网页浏览器中,我尝试单击“文件 ->文档详细信息”,但它没有显示元数据。

此 API 文档表明资源键包括在获取元数据时,但我认为该页面的上下文不同,我无法从 Google Apps Script 中检索该元数据:

https://developers.google.com/drive/api/v3/reference/files

即使我能够找到上下文,以便从 Google Apps Script 中获取该元数据,我也没有多少希望它将包含不由 GAS API 提供的资源键。

Google Apps Script 开发人员是否可以获取文件的资源键?

0 个答案:

没有答案