У меня есть служебная учетная запись gService
, которая загружает файл на Google Drive через API. Мне нужно изменить владельца файла с этой учетной записи службы на new_owner@gmail.com учетную запись
fun uploadFile(country: String, fileType: String, file: File, ownerId: String): String {
val gFile = com.google.api.services.drive.model.File()
gFile.name = "$ownerId ${getCurrentTime()}"//i set name of file according to date and user
gFile.parents = listOf(foldersIds[country]!![fileType]!!)//folder on my google drive
val content = FileContent(null, file)
var uploadedGFile = gService.Files().create(gFile, content)
.execute()
var userPermission = Permission()
.setType("user")
.setRole("owner")
.setKind("drive#permission")
.setEmailAddress("new_owner@gmail.com")
var permissions11 = gService.permissions().list(uploadedGFile.id).execute()//here i get permissionId
try {//i wrapped it for exception printing
gService.permissions().update(uploadedGFile.id, "03593465321157002914", userPermission)
//.setTransferOwnership(true)
.execute()
} catch (e: Exception) {
e.printStackTrace()
}
return uploadedGFile.id
}
У меня есть эта ошибка: ![enter image description here](https://i.stack.imgur.com/b7CgQ.png)
Если я раскомментирую .setTransferOwnership(true)
тогда я получу следующую ошибку
Как программно установить нового владельца перед загрузкой файла на диск Google?
ОБНОВЛЕНИЕ , но если Я делаю так
`fun uploadFile(country: String, fileType: String, file: File, ownerId: String): String {
val gFile = com.google.api.services.drive.model.File()
gFile.name = "$ownerId ${getCurrentTime()}"//i set name of file according to date and user
gFile.parents = listOf(foldersIds[country]!![fileType]!!)//folder on my google drive
val content = FileContent(null, file)
var uploadedGFile = gService.Files().create(gFile, content)
.execute()
var userPermission = Permission()
.setType("user")
.setRole("owner")
.setKind("drive#permission")
.setEmailAddress("new_owner@gmail.com")
var permissions11 = gService.permissions().list(uploadedGFile.id).execute()//here i get permissionId
try {//i wrapped it for exception printing
gService.permissions().create(uploadedGFile.id, userPermission)
.setTransferOwnership(true)
.execute()
} catch (e: Exception) {
e.printStackTrace()
}
return uploadedGFile.id
}`
У меня есть это милое сообщение
![enter image description here](https://i.stack.imgur.com/5EHxE.png)