2013-05-03 9 views
7

Wir haben einen sehr spezifischen Bedarf. Wir möchten ein generisches (Java-basiertes) Registrierungssystem für Event-Organisatoren erstellen. So kann jeder Organisator der Veranstaltung ein benutzerdefiniertes Formular in unserer Anwendung definieren, und dann sammeln wir die Daten von Benutzern für diese bestimmte Veranstaltung.Programmgesteuertes Erstellen und Verwalten von Google Forms über die Google Dokumentlisten-API

Jetzt können die Eingabefelder von Event zu Event wechseln, also dachte ich mir, eine Out-of-Box-Cloud-Lösung zu verwenden. Eine offensichtliche Sache kam mir in den Sinn, Google Forms zu verwenden. So wird für jeden Fall, wenn wir programmatisch ein Google-Formular erstellen und erhalten folgende 2 Dinge: 1) einbetten Link für das Formular 2) Zugriff auf die Daten zu halten Google-Tabelle

entsprechen, können wir den eingebetteten Link verwenden, die zeigen, Registrierungsformular für Benutzer auf der Seite Event. Außerdem können wir auf die Google-Tabelle zugreifen, um auf die Daten zuzugreifen, die Nutzer im Anmeldeformular ausgefüllt haben.

Aber als ich danach suchte, konnte ich keinen klaren Weg finden, dies zu erreichen. Es gibt eine Google-Dokumente-Listen-API, über die Sie programmatisch Google-Dokumente erstellen können, aber ich konnte nicht herausfinden, wie wir unsere Anforderungen über diese API erfüllen können.

Es wäre eine große Hilfe, wenn uns jemand in dieser Hinsicht leiten könnte. Oder schlagen Sie uns eine alternative Cloud-Lösung vor.

UPDATE :: Sieht aus wie Google keine API überhaupt für Formulare zur Verfügung stellt, die mit Spreadsheets verknüpft sind. http://goo.gl/ia8rk Wenn wir Glück haben, könnten sie in ihre zukünftigen Versionen aufnehmen. Also jede andere Cloud-basierte API, die für dieses Problem nützlich sein kann ??

Antwort

0

Wenn ich richtig verstehe, haben Sie ein Google-Blatt und Sie möchten einen Weg, um automatisch ein Formular zu generieren. Das generierte Formular sollte seine Antworten wieder mit dieser Tabelle verknüpfen. Ist das korrekt?

Ich weiß nicht, wie man das mit Java machen kann (wenn es dafür eine API gibt, glaube ich nicht), aber das lässt sich einfach mit Google Scripts erledigen. Dies wurde im Skript-Editor einer Google-Tabelle erstellt. Hier

ein Beispiel:

function onOpen() { 
    // read the docs to add to the toolbar 
} 

function getColumnHeaders() { 
    // this grabs the headers of your sheet 
    var headers = SpreadsheetApp 
    .getActiveSheet() 
    .getRange(1, 1, 1, SpreadsheetApp.getActiveSheet().getLastColumn()) 
    .getValues()[0]; 

    // this will appear in your root directory 
    var newForm = FormApp.create('NEW FORM NAME'); 
    newForm.setDestination(FormApp.DestinationType.SPREADSHEET, SpreadsheetApp.getActiveSpreadsheet().getId()); 

    headers.forEach(function(each) { 
    newForm.addTextItem().setTitle(each); 
    }); 
} 

Die Dokumentation finden Sie hier: https://developers.google.com/apps-script/reference/forms/