【发布时间】:2018-06-21 03:43:30
【问题描述】:
我正在使用 Google Apps Script 和 Drive API V2(我认为 V3 还没有在脚本中可用)在 Team Drive 内自动创建文件。我想用脚本添加编辑器,但没有成功。
我可以使用标准DriveApp 方法中的FolderIterator 访问团队云端硬盘和子文件夹。
尝试 1
function addUserToTeam(email, folders) {
// Open the team drive and get all the folders
var teamFolders = DriveApp.getFolderById('TEAMDRIVEIDSTRING').getFolders();
var folders = ["folderIdToMatch"] // This may hold multiple folders
try {
// Loop an array of folder IDs
for(var i=0; i<folders.length; i++) {
// Check the team drive folders for a matching name
while(teamFolders.hasNext()) {
var teamFolder = teamFolders.next();
if(folders[i] == teamFolder.getId()) {
teamFolder.addEditor(email);
}
}
}
} catch(e) {
Logger.log(e);
}
}
Exception: Cannot use this operation on a Team Drive item 失败。
尝试 2
我尝试了 Drive API,将 teamFolder.addEditor(email) 替换为 Permissions 资源:
if(folders[i] == teamFolder.getId()) {
var resource = {
"type":"user",
"role":"writer",
"value": email
}
Drive.Permissions.insert(resource, teamFolder.getId());
}
这会失败并出现File not found 错误。
我可以使用DriveApp 方法找到文件夹(或文件)。使用 Drive API 的任何尝试都失败了。
我找不到任何说明 API 无法访问团队云端硬盘文件的文档。我的方法有问题吗?
【问题讨论】:
-
你可以在团队驱动器中添加一个组并使用 GAS 管理该组吗?似乎是处理此问题的最简单方法。
标签: google-apps-script google-drive-api google-drive-shared-drive