驱动API v3 Java/Android - list文件sharedWithMe



我需要我的应用程序上传文件,在GDrive帐户上,可以由其他用户帐户(相同的应用程序,其他设备)列出和阅读

我正在从aUserFileCreator@gmail.com上传文件,并将权限设置为任何人/读者+将其与allowFileDiscovery公开

File file = driveService.files()
.create(fileMetadata, mediaContent)
.setFields("id")
.setSupportsAllDrives(true)
.setIgnoreDefaultVisibility(true)
.execute();

Permission p = new Permission();
p.setType("anyone");
p.setRole("reader");
p.setAllowFileDiscovery(true);
driveService.permissions()
.create(file.getId(), p)
.execute();

稍后与TheUserToListAndRead@gmail.com共享文件

Permission accessPermission = new Permission();
accessPermission.setEmailAddress("TheUserToListAndRead@gmail.com");
accessPermission.setType("user");
accessPermission.setRole("reader");
driveService.permissions().create(fileId, accessPermission).execute();

当尝试列出文件时,像下面这样,我没有得到任何返回但这些文件可以在TheUserToListAndRead@gmail.com

的Drive应用程序中看到。
FileList result = driveService.files().list()
.setQ("not 'me' in owners")
.setIncludeItemsFromAllDrives(true)
.setSupportsAllDrives(true)
.setSpaces("drive,appDataFolder")
.setCorpora("allDrives")
.execute();

或者我使用setQ("sharedWithMe")没有成功

当我完全删除setQ或将其设置为某种类型的mime时,代码适用于阅读器驱动器帐户中的文件(仅由阅读器创建和拥有)

首先让我说我不是android开发人员,但我知道谷歌api java客户端库。我不知道这在android上是否有效,我很想知道它是否有效。

您要找的是一种叫做服务帐户的东西。服务帐户就像虚拟用户。如果您与服务帐户共享一个目录,那么该服务帐户将有权访问该目录,而无需授权用户访问它。

GoogleCredential credential = GoogleCredential.fromStream(new 
FileInputStream("MyProject-1234.json"))
.createScoped(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN));

如何创建服务帐户凭据。只要记住在库下启用Google drive API。

最新更新