trucos sheets query hojas hoja google funcion docs definicion calculo java google-api google-spreadsheet-api

java - sheets - hojas de calculo



¿Cómo creo una hoja de cálculo de Google con una cuenta de servicio y la comparto con otros usuarios de google en java? (1)

Tengo una aplicación en la que yo, con una cuenta de servicio de Google , reúno mucha información sobre mi sitio desde la API de Analytics. Mi siguiente paso es crear una hoja de cálculo con la cuenta de servicio y compartir el documento con un par de usuarios.

Revisé la documentación en https://developers.google.com/google-apps/spreadsheets/ pero no encuentro nada allí sobre las cuentas de servicio y comparto los documentos.

¿Entonces mi primera pregunta es esta posible? Si no, ¿necesito implementar el "uso de mi cuenta personal" como se ejemplifica en la documentación? Si es así, ¿podría darme un ejemplo?

¡Gracias!


Es posible, vea el ejemplo a continuación (el ejemplo necesita un poco de ajuste):

Crear el servicio de unidad:

GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT).setJsonFactory(JSON_FACTORY) .setServiceAccountId(confBean.getServiceAccountId()).setServiceAccountScopes("https://www.googleapis.com/auth/drive") .setServiceAccountPrivateKeyFromP12File(new File("path to the P12File")) .setServiceAccountUser("[email protected]") .build(); Drive drive = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).build();

Crea la hoja de cálculo:

com.google.api.services.drive.model.File file = new com.google.api.services.drive.model.File(); file.setTitle("test"); file.setMimeType("application/vnd.google-apps.spreadsheet"); Insert insert = this.drive.files().insert(file); file = insert.execute();

Crear un servicio de hoja de cálculo:

GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT).setJsonFactory(JSON_FACTORY) .setServiceAccountId(confBean.getServiceAccountId()).setServiceAccountScopes("https://spreadsheets.google.com/feeds") .setServiceAccountPrivateKeyFromP12File(new File("path to the P12File")) .setServiceAccountUser("[email protected]") .build(); SpreadsheetService service = new SpreadsheetService("MySpreadsheetIntegration-v1"); service.setOAuth2Credentials(credential);

Recuperar la hoja:

SpreadsheetService s = googleConn.getSpreadSheetService(); String spreadsheetURL = "https://spreadsheets.google.com/feeds/spreadsheets/" + file.getId(); SpreadsheetEntry spreadsheet = s.getEntry(new URL(spreadsheetURL), SpreadsheetEntry.class);

Agrega los datos:

WorksheetFeed worksheetFeed = s.getFeed(spreadsheet.getWorksheetFeedUrl(), WorksheetFeed.class); List<WorksheetEntry> worksheets = worksheetFeed.getEntries(); WorksheetEntry worksheet = worksheets.get(0); URL cellFeedUrl= worksheet.getCellFeedUrl (); CellFeed cellFeed= s.getFeed (cellFeedUrl, CellFeed.class); CellEntry cellEntry= new CellEntry (1, 1, "aa"); cellFeed.insert (cellEntry);

Además, vea esta pregunta relacionada