Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何获得谷歌团队驱动的经理/贡献者/等?_Google Apps Script_Google Drive Api_Google Drive Shared Drive - Fatal编程技术网

Google apps script 如何获得谷歌团队驱动的经理/贡献者/等?

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

Team Drive有五个权限级别:

  • 经理
  • 内容管理器
  • 贡献者
  • 评论员
  • 观众
另一方面,只有三个功能可以获取文件夹中的用户列表:

  • getEditors()
  • getOwner()
  • getViewers()
如果您使用的是“我的驱动器”,则此功能可以正常工作,因为它具有完全相同的三个级别:

  • 是主人吗
  • 可以组织、添加和编辑
  • 只能查看
如何在Google团队驱动中获得5个访问级别中的每一个?如果我调用这3个函数,那么它们对应于团队驱动上的哪个访问级别?(例如,
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个状态:

  • 组织者
  • 文件管理器
  • 作家
  • 评论员
  • 读取器