谷歌驱动器api Permissions.Delete不起作用

问题描述 投票:0回答:1

我是我的谷歌硬盘的所有者,我可以使用以下代码打开“可共享链接”,但是当我想将其设置为私有(基本上关闭可共享链接)时,会发生异常:

Google.GoogleApiException: 'Google.Apis.Requests.RequestError The owner of a file cannot be removed. [403] Errors [     Message[The owner of a file cannot be removed.] Location[ - ] Reason[cannotRemoveOwner] Domain[global] ]

我可以轻松设置文件的权限:

        var permission = new Google.Apis.Drive.v3.Data.Permission();
        permission.Role = "reader";
        permission.Type = "anyone";
        var aaaa = Authentication.service.Permissions.Create(permission, fileIdAction).ExecuteAsync();

这是我的代码(不起作用):

        //Get PermissionId
        var get = Authentication.service.About.Get();
        get.Fields = "*";
        var permissionId = get.Execute().User.PermissionId;

        //Delete method
        Authentication.service.Permissions.Delete(fileIdAction, permissionId).Execute();

我认为permissionId可能是一个问题,所以我尝试了不同的方法来获取它,但是,没有一个工作(例外 - 关于所有者)。就像在这个线程 - How to get permissionId in Drive API v3?

关于如何将文件设置回私有的任何想法?谢谢你的帮助。

google-drive-sdk
1个回答
1
投票

答案就在这个问题上。 “无法删除文件的所有者。”

您尝试删除的permissionId是主要所有权权限,而不是您之前创建的共享权限。要获得第二个permissionId,要么在创建它时保存它(它在响应中),要么get文件的元数据并查看permissionIds[]

© www.soinside.com 2019 - 2024. All rights reserved.