【发布时间】:2021-11-27 03:54:25
【问题描述】:
我有一些在 TeamDrive 上搜索文件和文件夹的 Google Apps 脚本代码。
我遇到的问题是,如果我的同事创建了一个文件或文件夹,当我运行我的脚本时它找不到该文件。如果我创建了一个文件,而我的同事运行了该脚本,那么即使我们都有权查看、编辑并且可以查看云端硬盘中的文件和文件夹,该脚本也找不到该文件。如果我们中的一个人编辑了另一个人制作的文件,那么它就会在搜索中可见。
在进行一些 android 开发时,我遇到了 Drive REST api 的类似问题。在Android中调用files().list()时,我花了一段时间才发现我必须设置以下内容才能使我的搜索每次都成功。
- .setSupportsTeamDrives(true)
- .setIncludeTeamDriveItems(true)
- .setCorpora("teamDrive")
- .setTeamDriveId(myFolder.getTeamDriveId())
我假设我的应用脚本代码遇到了同样的问题。
//Create the N Google docs files
function CreateNFiles(){
var spreadsheet = SpreadsheetApp.getActive();
var Nmain = spreadsheet.getSheetByName("Nmain")
var spreadsheetId = spreadsheet.getId();
var pdfDir = "Form Data";
var TemplatesFolder = null;
//Check and see if there is a 'Form Data' folder
var NFolderId = null;
var RFolderId = DriveApp.getFileById(spreadsheetId).getParents().next().getId();
var files = DriveApp.searchFolders('parents="'+RFolderId+'" and trashed=false');
while (files.hasNext()) {
var myfile = files.next();
if(myfile.getName() == pdfDir){
NOFolderId = myfile.getId();
}
}
https://developers.google.com/apps-script/reference/drive/drive-app#searchFiles(String)
这里说是指
https://developers.google.com/drive/api/v3/search-parameters#examples_for_teamdriveslist
所以我可能会使用
corpora="teamDrive"
有没有办法设置支持团队驱动器?和 setIncludeTeamDriveItems?和 setTeamDriveId?在谷歌应用脚本中
【问题讨论】:
-
看看Google Drive APIs REST v2你需要在开发者控制台中启用这个API。
-
我应该能够用 DriveApp 完成同样的事情.....不应该吗?
-
我不这么认为。
标签: google-apps-script google-drive-shared-drive