Cómo publicar directamente en el formulario de Google Docs

Estoy trabajando en un proyecto en el que necesito publicar los datos que adquiero en un formulario de Google y obtener los datos de la hoja de cálculo. No puedo usar el script de Google Apps y necesito un método que use el método POST directo, ya que haré esta función desde un módulo GSM. Todas las soluciones publicadas anteriormente tienen en cuenta la estructura anterior del formulario de Google que proporciona una clave de formulario. Al igual que la solución descrita en este:

http://www.open-electronics.org/how-send-data-from-arduino-to-google-docs-spreadsheet/

El enlace a mi formulario actual es este.

https://docs.google.com/forms/d/14MkYG3fPNezzUC_nXUsWHlZ5JhplvjyWTAeob7f_W7g/viewform

Cualquier ayuda sería apreciada.

¿Es un requisito que un formulario de Google esté en medio de esto? Si es suficiente para poder publicar sus datos en una hoja de cálculo, aquí hay un Google-Apps-Script para un lado del problema: un servicio web simple que aceptará los datos del formulario como una cadena de consulta y lo escribirá en su hoja de cálculo.

Este ejemplo asume una hoja de cálculo muy simple, con tres columnas, “Marca de tiempo”, “col1” y “col2”. Edite el código para adaptarse a su situación.

Puedes ver la hoja de cálculo aquí , e incluso hacer una publicación de prueba .

/** * doGet() function to add data to a spreadsheet. * * Spreadsheet data is provided as a querystring, eg ?col1=1&col2='pizza' * * From: http://stackoverflow.com/a/18725479/1677912 * * @param {event} e Event passed to doGet, with querystring * @returns {String/html} Html to be served * * Test URLs (adjust ID as needed): * https://script.google.com/macros/s/--DEV-SCRIPT-ID--/dev?col1=1&col2='pizza' * https://script.google.com/macros/s/--PUB-SCRIPT-ID--/exec?col1=1&col2='pizza' */ function doGet(e) { Logger.log( JSON.stringify(e) ); // view parameters var result = 'Ok'; // assume success if (e.parameter == undefined) { result = 'No Parameters'; } else { var id = '--SHEET-ID---'; // Spreadsheet id for responses var sheet = SpreadsheetApp.openById(id).getActiveSheet(); var newRow = sheet.getLastRow() + 1; var rowData = []; rowData[0] = new Date(); // Timestamp for (var param in e.parameter) { Logger.log('In for loop, param='+param); var value = stripQuotes(e.parameter[param]); //Logger.log(param + ':' + e.parameter[param]); switch (param) { case 'col1': rowData[1] = value; break; case 'col2': rowData[2] = value; break; default: result = "unsupported parameter"; } } Logger.log(JSON.stringify(rowData)); // Write new row to spreadsheet var newRange = sheet.getRange(newRow, 1, 1, rowData.length); newRange.setValues([rowData]); } // Return result of operation return ContentService.createTextOutput(result); } /** * Remove leading and trailing single or double quotes */ function stripQuotes( value ) { return value.replace(/^["']|['"]$/g, ""); } 

Puedes hacer el envío con los nuevos formularios, hay una opción de menú para ello. (Respuestas-> Obtener prefill url) Proporciona la url para publicar datos en un formulario.

También pidió: “obtener los datos de la hoja de cálculo”: hay dos formas, el script de Google Apps y el estilo de gdata “google-spreadsheet-api”. Pero te sugiero que uses una combinación de Google Apps script y código de estilo “arduino”, ya que tiene mejores documentos y características que gi data style api.

ps he creado algunas fórmulas para crear una interfaz de usuario “arduino” hace un tiempo atrás.