google-apps-script - 以编程方式与特定用户(不是 Teamdrive 成员)共享 Teamdrive 中的文件
问题描述
我想使用 Google Apps 脚本与特定用户共享特定文件。该文件位于 Teamdrive 中,用户不是 Teamdrive 的成员,也不应该是 Teamdrive 的成员。
据我所知,使用 DriveApp 在普通驱动器中执行此操作的方法在 Teamdrives 中不起作用,因此我正在尝试使用 Drive REST API。据我了解,执行此操作的语法是:
Drive.Permissions.insert(
{role: "reader",
type: "user",
value: USER_EMAIL
},
FILE_ID,
{sendNotificationEmails:false,
supportsTeamDrives:true,
useDomainAdminAccess:true
}
)
这会产生一条错误消息,内容如下:
对 drive.permissions.insert 的 API 调用失败并出现错误:未找到团队驱动器:FILE_ID
当我用 Teamdrive 的 ID 替换 FILE_ID 时,它会将用户设置为整个 Teamdrive 的成员。
如何指定要为其设置权限的文件,或者更一般地说,如何以编程方式执行此操作?
解决方案
我遇到了完全相同的问题,但是当我添加supportsTeamDrives:true
参数时它起作用了。它应该在2020 年 6 月 1 日被弃用。
所以命令现在看起来像这样:
Drive.Permissions.insert(
{
value,
type,
role,
withLink: false
},
fileId,
{
sendNotificationEmails: false,
supportsAllDrives: true
});
推荐阅读
- python - 如何使用 discord.py 在服务器上识别 Mass Mention?
- javascript - 将类 setState 转换为功能组件
- android - 如何从房间中删除最喜欢的项目
- python - 我怎样才能刮掉pdf的几页?
- solidity - Solidity 智能合约抛出错误“发送”和“转移”仅适用于“应付地址”类型的对象,而不是“地址”类型的对象
- json - 在谓词为真时计算元素
- javascript - 更改事件未从反应页面上的外部脚本触发
- database - ERD 关系基数 - 反向放置符号会更好吗?
- python - Windows 上 Ubuntu 中的 Python 模块
- css - Material UI Theme Overrides how to correctly update gap between label and input