如何移除共享Google Drive用户权限?Drive.Permissions.remove调用失败
解决Google Drive共享权限无法移除的问题
你的代码存在几个关键问题导致权限移除失败,下面是修正后的方案:
问题分析
- 循环中错误使用了未定义的变量
x,应该用循环变量i来遍历权限列表 - 调用
Drive.Permissions.remove时没有传入正确参数,该方法需要文件ID和权限ID,而非直接使用邮箱 - 未处理权限列表为空的边界情况
修正后的代码
function removeUsers() { var fileId = "你的Drive文件ID"; var removeEmail = "test@test.com"; var args = { supportsAllDrives: true }; // 获取权限列表,处理空列表情况 var pList = Drive.Permissions.list(fileId, args); var editors = pList.items || []; // 遍历权限列表,找到目标邮箱对应的权限ID for (var i = 0; i < editors.length; i++) { var permission = editors[i]; if (permission.emailAddress === removeEmail) { // 调用移除方法,传入文件ID、权限ID及共享盘支持参数 Drive.Permissions.remove(fileId, permission.id, args); Logger.log("已移除用户 " + removeEmail + " 的权限"); break; // 找到目标后退出循环,避免重复操作 } } }
额外注意事项
- 确保脚本拥有足够权限:需启用Google Drive API,且运行脚本的账号对目标文件有管理权限(如所有者或具备编辑权限的管理员)
- 若目标用户是文件所有者,无法通过此方法移除,需先转移所有权
- 如需批量移除多个用户,可将
removeEmail改为数组,遍历数组逐一处理
内容的提问来源于stack exchange,提问作者Johnny56
相关产品推荐
相关产品推荐

