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 ?
Debería echarle un vistazo a Google Spreadsheet API 3.0 . Es compatible con JAVA, que puede usar en su aplicación Android.
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"