Wenn Sie Antworten aus Ihrem Widget in Kameleoon erfassen und in CSV exportieren möchten, lesen Sie diesen Artikel.
In diesem Artikel erfahren Sie:
- Wie Sie Ihr Google Sheet konfigurieren, um Umfragedaten zu empfangen.
- Wie Sie die Registerkarte Survey Settings im Widget Studio einrichten, um Antworten an Google Sheets zu senden.
Ihr Google Sheet konfigurieren
- Gehen Sie zu Google Sheets und erstellen Sie eine neue Tabelle.
- Benennen Sie die Registerkarte Sheet 1 (das ist die Standardeinstellung).
- Definieren Sie in der ersten Zeile die Spalten wie folgt:
Details:
- Column A > Geben Sie Date ein. Diese Zelle wird automatisch mit dem Datum und der Uhrzeit jeder Übermittlung gefüllt.
- Ab Column B > Geben Sie den Namen jedes Umfrage- oder Formularelements ein, das Ihrem Widget hinzugefügt wurde.
Den Namen eines Elements finden Sie im Elementbaum in der Registerkarte Content des Bereichs Design.
Wenn Sie ein Element auswählen (z. B. eine Scale), wird sein Name oben in der Bearbeitungs-Seitenleiste angezeigt.
Verwenden wir dieses Widget als Beispiel:
Dieses Widget verfügt über zwei Umfrageelemente. In der ersten Zeile des Google Sheets sollten wir daher Folgendes eingeben:
- Column A: Date
- Column B: Scale
- Column C: Long Answer
- Fügen Sie ein Google App Script hinzu
- Klicken Sie auf Extensions > App Script. Ein neues Google Script wird geöffnet. Benennen Sie es um (z. B. My form data).
- Ersetzen Sie den gesamten Code durch Folgendes:
const sheetName = 'Sheet1'
const scriptProp = PropertiesService.getScriptProperties()
function initialSetup () {
const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
scriptProp.setProperty('key', activeSpreadsheet.getId())
}
function doPost (e) {
const lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
const doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
const sheet = doc.getSheetByName(sheetName)
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
const nextRow = sheet.getLastRow() + 1
const newRow = headers.map(function(header) {
return header === 'Date' ? new Date() : e.parameter[header]})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return ContentService .createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow })) .setMimeType(ContentService.MimeType.JSON)
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally {
lock.releaseLock()
}
}
Wenn Sie Ihre Registerkarte aus irgendeinem Grund nicht „Sheet 1” nennen können, ändern Sie die erste Zeile des Skripts und ersetzen Sie „Sheet 1” durch den tatsächlichen Namen Ihrer Registerkarte.
Wenn Sie fertig sind, sollte Ihr Skript wie folgt aussehen:
- Klicken Sie auf Save project to Drive (links neben Run).
- Wählen Sie im Dropdown-Menü rechts neben Debug die Option
initialSetup aus (sie sollte standardmäßig ausgewählt sein).
- Klicken Sie auf Run.
Möglicherweise sehen Sie ein Pop-in, das nach Berechtigungen fragt. Klicken Sie auf Review permission und fahren Sie mit dem nächsten Bildschirm fort.
Da Google das Skript nicht überprüft hat, wird möglicherweise eine Warnmeldung angezeigt. Klicken Sie auf Go to Mailing List (unsafe), um die korrekten Berechtigungen zur Aktualisierung Ihres Formulars einzurichten.
Sobald die korrekten Berechtigungen für das Skript erteilt wurden, sollten Sie folgende Ausgabe in der Konsole des Skripteditors sehen:
Klicken Sie im linken Menü auf Triggers, um einen Trigger für das Skript hinzuzufügen/
Klicken Sie dann auf Add trigger.
Wählen Sie in dem angezeigten Fenster die folgenden Optionen aus:
- Choose which function to run:
doPost
- Choose which deployment should run:
Head
- Select event source:
From spreadsheet
- Select event type:
On form submit
Klicken Sie auf Save.
Klicken Sie auf Deploy > New deployment.
Klicken Sie auf das Symbol cog neben Select type > Web app.
Wählen Sie im angezeigten Formular die folgenden Optionen aus:
- Description:
My Form Data (Dies kann beliebig sein; achten Sie nur darauf, dass es beschreibend ist.)
- Web app > Execute as:
Me
- Web app > Who has access:
Anyone
Klicken Sie auf Deploy.
Who has access: Anyone ist für die korrekte Übertragung der Ergebnisse zwingend erforderlich.
Kopieren Sie die URL.
- Wählen Sie in der Registerkarte Survey Settings die Schaltfläche aus, auf die Benutzer klicken, um ihre Antwort einzureichen.
- Wählen Sie unter How are responses collected? die Option HTTP Request (external).
- Request Name: Geben Sie Ihrer Anfrage einen Namen (z. B. Send data to my Google Sheet).
- Method: Wählen Sie
POST.
- Action URL: Fügen Sie die von Ihrem Google Apps Script generierte URL ein.
- Speichern Sie Ihre Konfiguration.
Ihre Einrichtung testen
- Zeigen Sie eine Vorschau Ihres Widgets an.
- Füllen Sie die Umfrage aus und klicken Sie auf Submit.
- Kehren Sie zu Ihrem Google Sheet zurück.
Sie sollten nun eine neue Zeile mit Ihrer Antwort sehen.