c# - 如何以编程方式从 Google 驱动器中的 "share with me"中删除文件

标签 c# google-api google-drive-api google-oauth google-api-dotnet-client

使用完整的驱动器范围执行以下命令

var request = service.Files.Delete(fileId);

结果

insufficient permission error.

尝试从谷歌驱动器“与我共享”文件夹中删除文件时。

当登录用户实际上无权删除不属于他们的文件时,如何从“与我共享”中删除文件?

最佳答案

问题是相关用户不拥有该文件。经过大量挖掘后,我意识到您想要做的是删除用户对相关文件的权限。

您需要做的第一件事是运行 about.get在当前用户上:

return service.About.Get().Execute();

这将为您提供该用户的权限 ID

"permissionId": "060305882255734372",

一旦完成,您就可以执行 permissions.get在该用户的文件上:

var response = service.Permissions.Get(fileId, permissionId).Execute();

回应

{
 "kind": "drive#permission",
 "id": "06030588225573437",
 "type": "user",
 "role": "writer"
}

这将为您提供相关用户的文件权限 ID。

然后您可以使用permission.delete 删除用户对该文件的权限。

var response = service.Permissions.Delete(fileId, permissionId).Execute();

关于c# - 如何以编程方式从 Google 驱动器中的 "share with me"中删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770881/

相关文章:

c# - 在列表上引用不改变值

ios - Google 表格 API 发布 404 错误

version-control - 通过 Crouton 在 Chromebook 上本地访问 Google Drive

c# - Convert.ToString(string value) 有什么作用吗?

c# - 优雅地关闭多线程应用程序?

c# - 统一: how to specify to use specific instance of a type when resolving another type

google-api - 谷歌管理员 SDK 目录 API : Adding group as member with role "OWNER" gets error

api - 用于在 Google Apps 域中获取最大许可数的 Google API

c# - 如何列出特定文件夹中的文件夹和文件

wordpress - 是否有连接到 Google Drive 上的图像文件夹的 Wordpress 图库插件?