我試圖從服務帳戶創建的文檔所有權轉讓給使用下面的代碼誰所在的同一個谷歌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