我是我的Google驱动器的所有者,我可以使用下面的代码打开“共享链接”,但是当我要将其设置为私有时(基本上关闭了共享链接) 然后发生异常:
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可能是一个问题,所以我尝试了不同的方法来获取它,但是,它们都不起作用(Exception-关于所有者)。就像在此线程中一样-How to get permissionId in Drive API v3?
关于如何将文件设置回私有的任何想法?感谢您的帮助。
答案 0 :(得分:1)
答案在问题中。 “无法删除文件的所有者。”
您要删除的permissionId
是主要所有权权限,而不是您先前创建的共享权限。要获取第二个PermissionId,可以在创建它时将其保存(在响应中),或者get
文件的元数据并浏览permissionIds[]