我正在创建一个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
请帮帮我!
答案 0 :(得分:0)
如Handling API Errors中所述,404: File not found
可能是用户没有对文件的读取权限。
而且,AFAIK,需要访问用户数据的请求需要特定的访问范围。但是,如Authorizing Android Apps所述,Google云端硬盘Android API目前仅支持drive.file
和drive.appfolder
授权范围。
有了这个,您可能需要使用Google APIs Java Client授权您的请求,而是使用与您共享的{Drive}网络服务{/ 3}}。