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();

      }

   }

}

Respuestas a la pregunta(2)

Su respuesta a la pregunta