Я пытаюсь передать в собственность из учетной записи службы, созданного документа другому пользователю, который проживает в том же аккаунте Служб Google, используя этот код, но я получаю следующую ошибкуGoogle Drive 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.
В случае, это не достижимо, любые указатели на то, где смотреть дальше? Нам нужно, чтобы несколько пользователей имели возможность создавать документы ad hoc и назначать разрешения и передавать права собственности на лету через API.
Благодаря
Попробуйте патч вместо обновления? https://developers.google.com/drive/v2/reference/permissions/patch – DaImTo
Спасибо @DalmTo, но я использую V3 API, а функция Update - это старая функция Patch из V2 [Переход на Google Drive API версии 3] (https://developers.google.com/drive/v3/web/migration). – timkly
Хорошо было предположить, что было сложно сказать, был ли это v2 или v3 с вашим кодом. Патч работал в V2. Разрешения - это боль с приводом Google. – DaImTo