gpt4 book ai didi

google-apps-script - 访问团队云端硬盘中的文件和文件夹

转载 作者:行者123 更新时间:2023-12-02 03:42:11 28 4
gpt4 key购买 nike

我正在使用 Google Apps 脚本和 Drive API V2(我认为 V3 在脚本中尚不可用)来自动在团队云端硬盘内创建文件。我想使用脚本添加编辑器,但没有成功。

我可以使用标准 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);
}
}

此操作失败,并出现异常:无法在团队云端硬盘项目上使用此操作

尝试 2

我通过将 teamFolder.addEditor(email) 替换为 Permissions 资源来尝试使用 Drive API:

if(folders[i] == teamFolder.getId()) {
var resource = {
"type":"user",
"role":"writer",
"value": email
}
Drive.Permissions.insert(resource, teamFolder.getId());
}

此操作失败,并出现找不到文件错误。

我可以使用 DriveApp 方法找到文件夹(或文件)。任何对 Drive API 的尝试都会失败。

我找不到任何说明 API 无法访问团队云端硬盘文件的文档。我的方法有问题吗?

最佳答案

经过更多研究和挖掘,这里为具有类似用例的人提供了解决方案。

  1. 您可以访问整个团队云端硬盘的文件云端硬盘内的文件,但不能文件夹。这样做的目的是为了防止不应该访问的人意外地访问敏感信息目录。

  2. 要授予访问权限,supportsTeamDrives 是请求正文中的一个可选参数,它采用 boolean 值。将其设置为 true 并传入 API 调用。成功的函数如下。

  3. 实现我所描述的结果的唯一方法是使用多个团队云端硬盘并根据某些事件向用户授予访问权限。另一种选择是在项目期间将用户提升为完全权限(编辑或查看),然后在完成后撤销。

将用户添加到团队云端硬盘

(这也适用于云端硬盘中的单个文件)

// Using Google Apps Script with v2 of the Drive API enabled
function addToTeamDrive() {
var resource = {
'value': emailString,
'type': 'user',
'role': 'writer'
}

// If you have several Team Drives, loop through and give access
try {
var TeamDrive = Drive.Teamdrives.list();
for(var i = 0; i < TeamDrive.items.length; i++) {
if(TeamDrive.items[i].name === "Team Drive String") {
// This ID may also be a single file inside a Team Drive
var id = TeamDrive.items[i].id;
}
}

// Add user permissions to the matched Drive
Drive.Permissions.insert(resource, id, {"supportsTeamDrives": true});
} catch(e) {
Logger.log(e);
}
}

关于google-apps-script - 访问团队云端硬盘中的文件和文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48213373/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com