Google apps script 如何获得谷歌团队驱动的经理/贡献者/等?
Team Drive有五个权限级别:Google apps script 如何获得谷歌团队驱动的经理/贡献者/等?,google-apps-script,google-drive-api,google-drive-shared-drive,Google Apps Script,Google Drive Api,Google Drive Shared Drive,Team Drive有五个权限级别: 经理 内容管理器 贡献者 评论员 观众 另一方面,只有三个功能可以获取文件夹中的用户列表: getEditors() getOwner() getViewers() 如果您使用的是“我的驱动器”,则此功能可以正常工作,因为它具有完全相同的三个级别: 是主人吗 可以组织、添加和编辑 只能查看 如何在Google团队驱动中获得5个访问级别中的每一个?如果我调用这3个函数,那么它们对应于团队驱动上的哪个访问级别?(例如,getEditors是否返回Ma
- 经理
- 内容管理器
- 贡献者
- 评论员
- 观众
getEditors()
getOwner()
getViewers()
- 是主人吗
- 可以组织、添加和编辑
- 只能查看
getEditors
是否返回Manager
组中的所有人?)
我看到有一个枚举,具有我要查找的5个权限:
查看
编辑
注释
所有者
组织者
用户
或电子邮件
的访问级别。问题是我不知道要将哪个电子邮件传递给函数
如何获取5个类别(例如内容管理器
)中任何一个类别的人员列表?或者,我如何获得团队驱动器上所有人员的列表(例如,我知道使用getAccess()
)可以使用哪些电子邮件?以下是团队驱动器UI中给定权限、相应的getAccess()
值和您可以调用的包含该人员的文件夹API方法之间的映射摘要:
+-----------------------+-------------+-------------------+
| Team Drive Permission | getAccess() | Folder API Method |
+-----------------------+-------------+-------------------+
| Manager | ORGANIZER | (None) |
| Content Manager | NONE | (None) |
| Contributor | EDIT | getEditors() |
| Commenter | COMMENT | getViewers() |
| Viewer | VIEW | getViewers() |
| (None) | NONE | (None) |
+-----------------------+-------------+-------------------+
一些结果:
- 无法知道谁是团队驱动中的内容经理:请注意它如何为内容经理和不在团队驱动中的人员返回
NONE
。因此,使用getAccess()
方法无法知道谁是Team Drive中的内容经理,即使您知道此人的电子邮件地址也是如此。这可能是API中的错误
- 您可以轻松获取所有贡献者:只需调用
getEditors()
方法
- 您可以获取所有评论者和查看者,但也需要使用
getAccess()
:由于评论者和查看者都是通过getViewers
返回的,因此您需要将其与getAccess()中返回的结果交叉引用以查找实际的评论者或查看者
- 没有获取管理器或内容管理器的API方法:在文件夹中返回一组用户的标准API方法都不会返回管理器或内容管理器组中的任何人。因此,您需要知道经理的电子邮件地址,并且只能使用getAccess()验证他们是否确实是经理
getOwner()
始终返回null
。这大概是因为团队驱动上没有单一的所有者。即使只有1个管理器和0个内容管理器,它也会返回null
因此,似乎没有办法使用标准API在团队驱动中找到所有者
或组织者
s(可能分别是经理和内容经理)。相反,您必须已经知道与用户关联的电子邮件地址,并调用getAccess()
。这是不幸的
我希望以下解决方法能够奏效:
- 在团队驱动器内创建一个虚拟文件。由于团队驱动器中的文件权限映射到准确的编辑、评论、查看,因此
getEditors()
方法现在应该公开管理器和内容管理器。由于它们对文件具有编辑权限,因此它们应该由getEditors()
方法返回
不幸的是,这也不起作用。结果与文件夹案例完全相同。Manager和Content Manager被隐藏(即,3个方法都没有返回它们)。内容管理器的getAccess()仍然为空,等等
要获得管理者和内容管理者的列表,我认为唯一的选择是使用高级API。特别是,它看起来像teamDrivePermissionDetails[]。对象上的角色
准确返回映射到teamdrive权限的5个状态:
- 组织者
- 文件管理器
- 作家
- 评论员
- 读取器