我们的应用程序使用drive.file作用域来确保我们只能看到由我们的应用程序创建的用户文件。
但是,'list'调用会返回已与用户共享的文件,即使它们不是由我们的应用程序创建的。
可以在“试一试”中轻松验证。文件/列表API文档的一部分。 使用drive.file范围进行授权并运行不带任何参数的简单列表查询。这应该返回一个空列表,但在我的情况下返回已经与我共享的数十个文件。
之前存在相同的问题(仅略微影响q参数集的查询):Listing files with search query returns out-of-scope results (drive.files.list call, using drive.files scope)
在此期间它已被修复,但现在它似乎又回到了所有列表查询。这是有问题的,主要是因为它打破了我们的应用程序除了它自己的文件只需要它。存在隐私问题,因为我可以突然看到用户私人数据的文件名,这是他们从未同意过的。
答案 0 :(得分:0)
我认为此问题是由API Explorer的行为引起的,而不是Drive API本身。如果API资源管理器已经有一个能够进行调用的OAuth范围的令牌,那么它将使用它,因此如果先前为API资源管理器提供了可以查看所有用户文件的范围,那么您将全部收回它们。尝试在以下位置撤消帐户的所有资源管理器令牌:
https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en
然后,在清除developers.google.com的所有Cookie /会话后,尝试使用drive.file范围创建新令牌并再次尝试进行API调用。
您还应注意,将返回公开共享的文件。