我试图从服务帐户创建的文档所有权转让给使用下面的代码谁所在的同一个谷歌Apps帐户中的其他用户,但我发现了以下错误谷歌云端硬盘API - 从服务帐户所有权转移
资源体包含不可直接写入的字段。 [403]误差 [内容[资源体包括不直接可写字段]地址[ - ]原因[fieldNotWritable]域[全球]]
var service = GetService();
try
{
var permission = GetPermission(fileId, email);
permission.Role = "owner";
var updatePermission = service.Permissions.Update(permission, fileId, permission.Id);
updatePermission.TransferOwnership = true;
return updatePermission.Execute();
}
catch (Exception e)
{
Console.WriteLine("An error occurred: " + e.Message);
}
return null;
注释掉// permission.Role =“所有者”;返回以下错误
当权限角色为“所有者”时,必须启用transferOwnership参数。 [403]错误[消息[权限角色为'所有者'时必须启用transferOwnership参数。]位置[transferOwnership - 参数]原因[禁止]域[全局]]
分配任何其他权限都可以正常工作。因此,这是服务帐户无法将所有权转让给任何其他未使用@ gserviceaccount.com电子邮件地址(即[email protected]> [email protected])的帐户的限制。 ?
[email protected]电子邮件地址已创建并在Google Apps中进行管理。
在这种情况下,它是不可实现的,任何指向下一步的指针?我们需要多个用户有能力通过API临时创建文档并分配权限并实时传输所有权。
感谢
尝试使用补丁而不是更新? https://developers.google.com/drive/v2/reference/permissions/patch – DaImTo
谢谢@DalmTo但我使用的是V3 API,更新功能是V2中的旧补丁功能[迁移到Google Drive API v3]( https://developers.google.com/drive/v3/web/migration)。 – timkly
好的是一个猜测很难判断它是否是你的代码的v2或v3。修补工作在V2中。权限是谷歌驱动器的一个痛苦。 – DaImTo