Google Drive API检查文件是否与我共享

时间:2017-06-02 18:28:35

标签: java google-drive-api google-sheets-api

我正在创建一个Android应用,它使用Google表格API V4和Google Drive API V2来编辑Google电子表格。但我有一个问题。我需要能够检查电子表格是否与登录到设备的用户共享,以及他们是否可以编辑它或是否是所有者。我试过了 Boolean canEdit = driveService.files().get(fileId).execute().getEditable();

Boolean canEdit = driveService.files() .get(fileId).execute().getCapabilities().getCanEdit();
但是这两者似乎只有在用户拥有该文件时才有效。我认为这是因为命令files().get(id)只能获取用户驱动器中的文件;不是与用户共享的任何文件。我也试过了 String role = driveService.permissions().get(fileId, driveService .about().get().execute().getPermissionId()).execute().getRole();
但这似乎也只是在用户驱动器中查找文件。如果用户不是所有者,则所有这些命令都会抛出404 Not Found 请帮帮我!

1 个答案:

答案 0 :(得分:0)

Handling API Errors中所述,404: File not found可能是用户没有对文件的读取权限。

而且,AFAIK,需要访问用户数据的请求需要特定的访问范围。但是,如Authorizing Android Apps所述,Google云端硬盘Android API目前仅支持drive.filedrive.appfolder授权范围。

有了这个,您可能需要使用Google APIs Java Client授权您的请求,而是使用与您共享的{Drive}网络服务{/ 3}}。