una spreadsheets sheets sheet respuestas hoja google gestionar formularios formulario editar desde cálculo crear compartidos como archivos java android google-spreadsheet google-drive-sdk

java - spreadsheets - sheet google doc



¿Cómo creo y edito un archivo de hoja de cálculo en Google Drive con las API de Google Drive solo desde mi aplicación de Android? (2)

Mi aplicación contiene una lista de turnos. Me gustaría guardar la lista de turnos en un archivo de hoja de cálculo en una cuenta de Google Drive. Dado que Google Spreadsheets API usa la desaprobada API de Google Docs para crear archivos de hoja de cálculo; ¿cómo puedo crear y editar dicho archivo en una unidad de Google, todo desde el código de Java dentro de mi aplicación de Android y sin ninguna interacción del usuario (excepto las autorizaciones), utilizando solo las API de Google Drive ?



La API de Google Docs está en desuso, pero Sheets API (actual: v3) aún está activa.

Para cumplir con la funcionalidad equivalente de la combinación original de Hojas de cálculo + Documentos, debe usar Drive API para realizar manipulaciones de archivos como buscar / mover / crear / eliminar.

Además de los ámbitos para Drive API, agregue el siguiente alcance a su concesión:

https://spreadsheets.google.com/feeds

Si está utilizando la biblioteca cliente GData y la biblioteca del cliente Google OAuth , será bastante fácil configurar ambos servicios después de la autorización OAuth 2.0. Aquí hay un ejemplo:

// Acquire clientId, clientSecret and refreshToken ... // Create shared credential GoogleCredential credential = new GoogleCredential.Builder() .setClientSecrets(clientId, clientSecret) .setJsonFactory(jsonFactory) .setTransport(transport) .build().setRefreshToken(refreshToken); // Setup both servives Drive driveService = new Drive.Builder(transport, jsonFactory, credential).build(); SpreadsheetService sheetService = new SpreadsheetService(...); sheetService.setOAuth2Credentials(credential); // only provided in newer releases sheetService.useSsl();

Los ID de recursos en ambas API son idénticos, por lo que puede buscar el id de algún archivo con los métodos de la API de Drive y acceder a las hojas de trabajo en el archivo con los métodos de la API de Sheets. Aquí hay un ejemplo:

File file = driveService.files().get().setFields(...).execute(); String feedUrl = "https://spreadsheets.google.com/feeds/worksheets/" + file.getId + "/private/full"; WorksheetFeed feed = sheetService.getFeed(feedUrl, WorksheetFeed.class);

Si obtiene un error de "Token no válido - El token de AuthSub tiene un alcance incorrecto", puede ser útil agregar una cadena de consulta de accessToken a feedUrl.

feedUrl = feedUrl + "?access_token=" + credential.getAccessToken();

FYI, la lista de preguntas y respuestas a la que me he referido al escribir esta respuesta.

  • "¿Es posible utilizar la API de Google Drive con la API de hoja de cálculo?"
  • "Obtener hoja de cálculo creada con Drive SDK"
  • "SDK de Google Drive alternateLink con OAuth2"