[34588f42] Feat: Freigabe-Anfrage mit Gutschein-Webhook integriert
- Datenbank um 'DiscountCode' Modell erweitert.
- Neue Backend API-Routen für Upload von Gutscheincodes, Abfrage der Verfügbarkeit und Webhook-Listener (Google Forms) zur automatischen Dankes-E-Mail erstellt.
- Frontend (App.tsx) um ein neues Tool ('Anfrage Veröffentlichung') erweitert, das anhand der CSV-Daten Platzhalter (<Name>, <Kind>, <Kindergarten>) personalisiert und Mails via Gmail versendet.
- Google Forms Webhook Script (google_forms_webhook.js) als Kopiervorlage erstellt.
This commit is contained in:
53
google_forms_webhook.js
Normal file
53
google_forms_webhook.js
Normal file
@@ -0,0 +1,53 @@
|
||||
// ANLEITUNG ZUR EINRICHTUNG IM GOOGLE FORMULAR
|
||||
// 1. Öffne dein Google Formular (Freigabe zur Veröffentlichung).
|
||||
// 2. Klicke oben rechts auf das Drei-Punkte-Menü und wähle "Skript-Editor".
|
||||
// 3. Kopiere diesen Code hinein und speichere (Strg+S).
|
||||
// 4. Ersetze die WEBHOOK_URL durch deine korrekte Domain.
|
||||
// 5. Klicke im Skript-Editor links auf die "Uhr" (Trigger).
|
||||
// 6. Füge einen neuen Trigger hinzu:
|
||||
// - Funktion: onSubmit
|
||||
// - Ereignisquelle: Aus Formular
|
||||
// - Ereignistyp: Beim Senden des Formulars
|
||||
// 7. Akzeptiere die Berechtigungen von Google.
|
||||
|
||||
const WEBHOOK_URL = "https://floke-ai.duckdns.org/fotograf-de-api/api/publish-request/webhook";
|
||||
|
||||
function onSubmit(e) {
|
||||
try {
|
||||
// Hole alle Antworten
|
||||
var itemResponses = e.response.getItemResponses();
|
||||
var email = e.response.getRespondentEmail(); // Geht nur, wenn "E-Mail-Adressen erfassen" aktiv ist!
|
||||
|
||||
// Fallback: Wenn E-Mail-Erfassung nicht global an ist, suche nach einem Feld namens "E-Mail"
|
||||
if (!email) {
|
||||
for (var i = 0; i < itemResponses.length; i++) {
|
||||
var title = itemResponses[i].getItem().getTitle().toLowerCase();
|
||||
if (title.indexOf("e-mail") !== -1 || title.indexOf("email") !== -1) {
|
||||
email = itemResponses[i].getResponse();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!email) {
|
||||
Logger.log("Keine E-Mail-Adresse gefunden.");
|
||||
return;
|
||||
}
|
||||
|
||||
var payload = {
|
||||
"email": email
|
||||
};
|
||||
|
||||
var options = {
|
||||
"method": "post",
|
||||
"contentType": "application/json",
|
||||
"payload": JSON.stringify(payload)
|
||||
};
|
||||
|
||||
UrlFetchApp.fetch(WEBHOOK_URL, options);
|
||||
Logger.log("Webhook erfolgreich an " + WEBHOOK_URL + " gesendet. Email: " + email);
|
||||
|
||||
} catch (err) {
|
||||
Logger.log("Fehler: " + err.toString());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user