By user1479451

2013-05-19 09:21:42 8 Comments

I'm working on a project where i need to post the data i acquire to a Google form and obtain the data from the spreadsheet. I cannot use google apps script and need a method using the direct POST method as i will be doing this function from a GSM module. All the solutions posted previously take into consideration the old structure of the Google form which provides a form key.Like the solution described in this one:

The link to my current form is this.

Any help would be appreciated.


@Mogsdad 2013-09-10 17:38:08

Is it a requirement that a google form be in the middle of this? If it is enough to be able to post your data to a spreadsheet, here's a Google-Apps-Script for one side of the problem: a simple web service that will accept form data as a query string, and write that to your spreadsheet.

This examples assumes a very simple spreadsheet, with three columns, "Timestamp", "col1" and "col2". Edit the code to suit your situation.

You can see the spreadsheet here, and even make a test post.

 * doGet() function to add data to a spreadsheet.
 * Spreadsheet data is provided as a querystring, e.g. ?col1=1&col2='pizza'
 * From:
 * @param {event} e Event passed to doGet, with querystring
 * @returns {String/html} Html to be served
 * Test URLs (adjust ID as needed):
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;
        case 'col2':
          rowData[2] = value;
          result = "unsupported parameter";

    // Write new row to spreadsheet
    var newRange = sheet.getRange(newRow, 1, 1, rowData.length);

  // Return result of operation
  return ContentService.createTextOutput(result);

 * Remove leading and trailing single or double quotes
function stripQuotes( value ) {
  return value.replace(/^["']|['"]$/g, "");

@eddyparkinson 2013-05-20 13:26:31

You can do the sending with the new forms, there is a menu option for it. (Responses->Get prefill url) It gives the url for posting data to a form.

You also asked: "obtain the data from the spreadsheet":There are two ways, google apps script and gdata style "google-spreadsheet-api". But I suggest you use a mix of google apps script and "arduino" style code, as it has better docs and features than gdata style api.

p.s. I created some formulas for creating an "arduino" user interface a while back.

Related Questions

Sponsored Content

30 Answered Questions

[SOLVED] How do you set, clear, and toggle a single bit?

1 Answered Questions

5 Answered Questions

[SOLVED] Google Docs Spreadsheet to JSON

3 Answered Questions

[SOLVED] How do you POST data to a multi-page google form?

  • 2015-11-23 07:13:59
  • Douglas Gaskell
  • 1168 View
  • 1 Score
  • 3 Answer
  • Tags:   c# post google-forms

1 Answered Questions

[SOLVED] google sheets scripting & google forms

1 Answered Questions

Dynamically Prefill Google Forms with URL Parameters

  • 2018-07-18 07:51:15
  • JPashs
  • 1685 View
  • 1 Score
  • 1 Answer
  • Tags:   google-forms

1 Answered Questions

unable to post data from google form (multiple pages) using Android

1 Answered Questions

[SOLVED] Google Forms, sidebar for live form

Sponsored Content