No se pueden actualizar los archivos de Google Drive con Drive API v3: el cuerpo del recurso incluye campos que no se pueden escribir directamente
Estoy tratando de usar la API de Google Drive (v3) para hacer actualizaciones a los documentos en Google Drive.
He leído esta guía de migración:Migración de la API de Google Drive v3
Y lo codifiqué para hacer un nuevo Archivo vacío () con los detalles que quiero actualizar y luego llamar a execute () con eso y la ID del archivo. Pero todavía recibo un error. ¿Alguien puede señalar dónde estoy haciendo mal? ¡¡muchas gracias!!
Error:
{
"code" : 403,
"errors" : [{
"domain" : "global",
"message" : "The resource body includes fields which are not directly writable.",
"reason" : "fieldNotWritable"
}],
"message" : "The resource body includes fields which are not directly writable."
}
Fragmento de código a continuación:
File newFileDetails = new File();
FileList result = service2.files().list()
.setPageSize(10)
.setFields("nextPageToken, files(id, name)")
.execute();
List<File> files = result.getFiles();
if (files == null || files.size() == 0) {
System.out.println("No files found.");
} else {
System.out.println("Files:");
for (File file : files) {
if (file.getName().equals("first_sheet")) {
System.out.printf("%s (%s)\n", file.getName(), file.getId());
newFileDetails.setShared(true);
service2.files().update(file.getId(), newFileDetails).execute();
}
}
}