如何直接发布到Google文档表单

我正在开展一个项目,我需要将我获得的数据发布到Google表单并从电子表格中获取数据。 我不能使用谷歌应用程序脚本,并需要使用直接POST方法的方法,因为我将从GSM模块执行此function。 之前发布的所有解决方案都考虑了提供表单密钥的Google表单的旧结构。就像这个中描述的解决方案一样:

How to send data from Arduino to Google Docs Spreadsheet

我当前表单的链接是这样的。

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

任何帮助,将不胜感激。

是否要求谷歌表格处于这个中间? 如果能够将您的数据发布到电子表格就足够了,这里就是针对问题的一方的Google-Apps-Script:一个简单的Web服务,它将表单数据作为查询字符串接受,并将其写入您的电子表格。

这个例子假设一个非常简单的电子表格,有三列,“Timestamp”,“col1”和“col2”。 编辑代码以适合您的情况。

您可以在此处查看电子表格,甚至可以发布测试post 。

/** * 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, ""); } 

您可以使用新表单进行发送,有一个菜单选项。 (响应 – >获取预填充URL)它提供了将数据发布到表单的URL。

您还问:“从电子表格中获取数据”:有两种方式,谷歌应用程序脚本和gdata样式“google-spreadsheet-api”。 但我建议您使用谷歌应用程序脚本和“arduino”样式代码的混合,因为它有比gdata样式api更好的文档和function。

ps我创建了一些用于创建“arduino”用户界面的公式。