如何通过Google Drive API检查应用对文件是否拥有写入权限?
解决方案
有两个直接的方法可以提前判断文件是否具备写入权限,无需通过试错:
检查
createdByMe字段
调用Drive API的Files.get接口时,指定返回createdByMe字段(通过fields=createdByMe参数过滤结果)。这个布尔字段会直接返回当前授权用户是否为该文件的创建者。如果返回true,说明该文件是你的应用创建的,在当前权限范围内拥有写入权限;如果是false,则无法写入。检查
capabilities.canEdit字段
同样在Files.get请求中,请求capabilities.canEdit字段(例如fields=capabilities.canEdit)。这个字段会综合当前用户的权限范围和文件的具体权限设置,直接返回是否允许编辑(写入)该文件。这个方法比判断创建者更直接——不管文件是谁创建的,只要当前权限允许写入,就会返回true。
你可以同时请求这两个字段做双重验证,请求示例如下:
GET https://www.googleapis.com/drive/v3/files/{FILE_ID}?fields=createdByMe,capabilities.canEdit
通过这种方式,你能在加载文件时直接获取判断依据,提前禁用不具备写入权限的文件的保存操作,不用再依赖写入后的错误处理。
内容的提问来源于stack exchange,提问作者Pierre
相关产品推荐
相关产品推荐

