我在使用 Google 云端硬盘开发的应用程序时遇到问题。
我有一个 Google 群组,里面有一些用户,我与该群组共享一个集合。 当我尝试使用 Google Drive API (files().list()) 查找此集合时,作为该群组的用户之一,该集合会正确显示。
但是,如果我将另一个用户添加到组中(使用 API 或 Google CPanel),并尝试使用 Google Drive API 作为该用户查找集合,则该集合不会显示,就好像该用户不存在一样即使他所在的组允许查看该集合,也能够看到它。
如果我通过浏览器手动打开该集合,则该集合将通过 Drive API 显示。
这是正常行为吗?在我的用例中,我不能指望用户在浏览器中打开与他们共享的每个集合以使应用程序正常工作。
有什么见解吗?
最佳答案
我针对此问题立了一个 Google 支持案例,显然这种行为是“意料之中的”。以下是我与“Angel”的交流的一些摘录 Google Enterprise 支持(已更正拼写错误并强调我的意思):
After reviewing the stackoverflow question, we need to clarify to you that the behavior shown is expected. When adding a user to a group, this group must be added again for any files that it has been shared with.
和
All information previously provided is from internal documentation for Drive UI; however the functionality is the same for SDK, therefore, group must be deleted and added back to the list of users that have access to files/folders after adding a new member.
所以,你已经明白了。不确定@Burcu 是否会回来确认。
<编辑>情况变得更糟。根据this Google document ,成员超过 200 人的群组将永远不会看到与其共享的文件,即使您删除并重新添加该群组也是如此。 编辑>
无用的回答后咆哮如下:
这种行为,即使是 Google“预期”的,似乎也没有正确记录,而且该服务的客户既不预期也不可以使用它。我们如何知道用户何时被添加到与其共享项目的组中?我们是否应该持续监控群组成员资格并维护与群组共享的所有内容的列表,然后在成员资格发生变化时*重新*与群组共享它们,只是为了获得一致的行为?这让我想知道为什么谷歌还没有在后端这样做;向一个组注册在成员资格更改时触发的回调列表不可能那么昂贵。我们实际上取消共享的要求甚至更奇怪,因为它需要一小段时间组中的任何人都无法访问该资源。
关于google-drive-api - Google Drive API 和群组共享问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16903820/