根据最近的谷歌开发者电子邮件,在 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 开发人员是否可以获取文件的资源键?