В моем коде ниже, использующем Google Drive API v3 для передачи права собственности от одного пользователя другому в том же домене, возникает это исключение. Я использую служебную учетную запись с разрешениями на уровне домена для авторизации.
string FileID = "xxxxxxxxxxxxxxxxxxx";
var getRequest1 = OwnerDrive.Files.Get(FileID);
getRequest1.Fields = "owners,name,parents,mimeType,permissions";
var afile = getRequest1.Execute();
foreach (var perm in afile.Permissions)
{
Console.WriteLine(perm.EmailAddress + " : " +
perm.DisplayName + " : " + perm.Role + " : " + perm.Id);
}
// I manually note down the permissionID of the current owner as
"14016095883385444520"
//Set New owner
Permission p = new Permission();
p.Role = "owner";
p.Type = "user";
p.EmailAddress = "[email protected]";
var updateRequest = OwnerDrive.Permissions.Update(p, FileID,
"14016095883385444520");
updateRequest.TransferOwnership = true;
updateRequest.Execute();
Возникновение ошибки \ исключения следующее:
«Сообщение [тело ресурса включает поля, которые не могут быть записаны напрямую.] Местоположение [-] Причина [fieldNotWritable] Домен [глобальный]».
В новом приводе v3 API говорится, что нужно использовать Permissions.Update и передать ему permissionID, что я и делаю (хотя и вручную). Что мне здесь не хватает? Любая помощь приветствуется.