Webhooks

Richten Sie Echtzeit-Ereignisbenachrichtigungen ein, um Daten an Ihre externen Systeme zu übertragen, wenn in Ihrer Gruppe Ereignisse auftreten.

Erweitert
15 Minuten

Voraussetzungen

Bevor Sie Webhooks einrichten, benötigen Sie Folgendes:

  • Ein Balla Stats-Konto
  • TEAM-Plan oder höher
  • Administrator- oder Besitzerrolle in der Gruppe
  • Grundlegendes Verständnis von HTTP-Endpunkten

Plangrenzen: TEAM = 5 Webhooks (10.000 Ereignisse/Tag), ENTERPRISE = 50 Webhooks (unbegrenzte Ereignisse/Tag). FREE- und PRO-Pläne beinhalten keine Webhooks.

Echtzeit-Ereignisbenachrichtigungen

Erhalten Sie sofortige Benachrichtigungen, wenn in Ihrer Gruppe Ereignisse auftreten. Webhooks übertragen Daten in Echtzeit an Ihre externen Systeme.

21 Ereignistypen

Spiel, Tor, Karte, Saison, Registrierung, Spieler, Teamevents

HMAC-Signaturen

Authentizität der Nutzlast überprüfen

Automatische Wiederholungsversuche

Zuverlässige Lieferung mit exponentiellem Backoff

Was Sie lernen werden
  • Navigieren Sie zu Webhooks
  • Erstellen Sie einen Webhook
  • Ereignistypen verstehen
  • Webhook-Signaturen überprüfen
  • Testen Sie Ihren Webhook
  • Überwachen Sie die Zustellungsprotokolle
  • Wiederholungsverhalten und automatische Deaktivierung
  • Geheimnis neu generieren
1
Navigieren Sie zu Webhooks

Öffnen Sie die Seite Settings Ihrer Gruppe und klicken Sie auf die Registerkarte Webhooks. Hier verwalten Sie alle Webhook-Konfigurationen für Ihre Gruppe.

Registerkarte „Webhooks“ in den Gruppeneinstellungen
2
Erstellen Sie einen Webhook

Klicken Sie auf „Webhook erstellen“ , geben Sie einen beschreibenden Namen und Ihre Ziel-URL ein und wählen Sie aus den 21 verfügbaren Ereignistypen die Ereignisse aus, die Sie abonnieren möchten.

Webhook-Dialogfeld mit Ereignistypauswahl erstellen
3
Ereignistypen verstehen

Webhooks unterstützen 21 Ereignistypen in 7 Kategorien. Abonnieren Sie nur die Veranstaltungen, die Ihre Integration erfordert.

Spielereignisse (5)

match.created, match.started, match.ended, match.completed, match.cancelled

Zielereignisse (2)

goal.scored, goal.deleted

Kartenereignisse (2)

card.yellow, card.red

Substitutionsereignisse (1)

substitution.made

Saisonereignisse (3)

season.created, season.started, season.ended

Registrierungsveranstaltungen (3)

registration.created, registration.updated, registration.cancelled

Spielerereignisse (3)

player.created, player.updated, player.deleted

Teamevents (3)

team.created, team.updated, team.deleted

4
Webhook-Signaturen überprüfen

Jede Webhook-Lieferung enthält eine HMAC-SHA256-Signatur, sodass Sie überprüfen können, ob die Nutzlast von Balla Stats stammt. Die folgenden Header sind in jeder Lieferung enthalten:

  • X-Webhook-SignatureHMAC-SHA256-Signatur der Nutzlast
  • X-Webhook-IdWebhook-Konfigurations-ID
  • X-Webhook-Event-IdEindeutige Ereignis-ID für Idempotenz
  • X-Webhook-TimestampISO 8601-Zeitstempel des Ereignisses

Hier ist ein Node.js-Beispiel zur Überprüfung der Signatur:

const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature.replace('sha256=', '')),
    Buffer.from(expected)
  );
}

Überprüfen Sie Webhook-Signaturen immer in der Produktion, um Payload-Spoofing zu verhindern.

5
Testen Sie Ihren Webhook

Klicken Sie auf die Schaltfläche „Test“, um ein Testereignis an Ihren Endpunkt zu senden. Sehen Sie sich das Übermittlungsergebnis an, um zu bestätigen, dass Ihr Endpunkt korrekt empfängt und verarbeitet.

Ergebnis der Webhook-Testzustellung zeigt Erfolg
6
Zustellungsprotokolle überwachen

Sehen Sie sich den vollständigen Zustellungsverlauf für jeden Webhook an. Jeder Protokolleintrag zeigt den Übermittlungsstatus (DELIVERED, FAILED, RETRYING), den HTTP-Statuscode, die Antwortzeit und etwaige Fehlermeldungen.

Verlauf des Webhook-Zustellungsprotokolls mit Status und Zeitpunkt
7
Wiederholungsverhalten und automatische Deaktivierung

Fehlgeschlagene Lieferungen werden automatisch mit exponentiellem Backoff wiederholt. Die Standardkonfiguration umfasst 3 Wiederholungsversuche mit zunehmenden Verzögerungen:

  • Versuch 1: 60 Sekunden nach dem ersten Fehler
  • Versuch 2: 120 Sekunden nach dem ersten Wiederholungsversuch
  • Versuch 3: 240 Sekunden nach dem zweiten Wiederholungsversuch

Nach 10 aufeinanderfolgenden Ausfällen wird der Webhook automatisch deaktiviert, um eine Verschwendung von Ressourcen zu verhindern. Sie können es manuell wieder aktivieren, nachdem Sie das Problem mit Ihrem Endpunkt behoben haben.

8
Geheimnis neu generieren

Wenn Ihr Webhook-Geheimnis gefährdet ist, generieren Sie es sofort neu. Aktualisieren Sie Ihren empfangenden Endpunkt vor der nächsten Zustellung mit dem neuen Geheimnis, um sicherzustellen, dass die Signaturüberprüfung weiterhin funktioniert.

Durch die Neugenerierung des Geheimnisses wird das alte Geheimnis sofort ungültig. Aktualisieren Sie zuerst Ihren Endpunkt, um fehlgeschlagene Signaturprüfungen zu vermeiden.

Webhook-Nutzlastformat

Jede Webhook-Zustellung sendet eine JSON-Nutzlast mit der folgenden Struktur:

{
  "id": "unique-event-id",
  "timestamp": "2025-01-16T10:30:00.000Z",
  "type": "goal.scored",
  "data": {
    "matchId": "match-id",
    "playerId": "player-id",
    "teamId": "team-id",
    "minute": 42,
    "type": "GOAL"
  }
}
Tipps

Verwenden Sie zuerst ein Testtool

Beginnen Sie zum Testen mit webhook.site oder requestbin.com, bevor Sie Ihren Produktionsendpunkt verwenden.

Selektiv abonnieren

Abonnieren Sie nur die Veranstaltungen, die Sie benötigen, um den Lärm zu reduzieren und Ihr tägliches Veranstaltungslimit einzuhalten.

Idempotenz implementieren

Implementieren Sie Idempotenz mithilfe der Ereignis-ID, um potenzielle doppelte Lieferungen zu verarbeiten.

Empfangene Nutzlasten protokollieren

Protokollieren Sie empfangene Nutzlasten auf Ihrer Seite, um Zustellungsprobleme zu beheben.

Häufige Probleme

Webhook wird nicht ausgelöst

  • Überprüfen Sie, ob der Webhook aktiv und nicht automatisch deaktiviert ist
  • Stellen Sie sicher, dass der Webhook den richtigen Ereignistyp
  • abonniert hat Stellen Sie sicher, dass Ihr Gruppenplan Webhooks unterstützt (TEAM oder höher)

Signaturüberprüfung schlägt fehl

  • Verwenden Sie den rohen Anforderungstext für die HMAC-Berechnung, kein geparstes Objekt
  • Suchen Sie nach Unterschieden in der Zeichenkodierung zwischen Ihrem Server und der Nutzlast
  • Stellen Sie sicher, dass das Geheimnis seit Ihrer letzten Konfiguration nicht neu generiert wurde

Webhook automatisch deaktiviert

  • 10 aufeinanderfolgende Fehler lösten eine automatische Deaktivierung aus, um eine Verschwendung von Ressourcen zu verhindern
  • Beheben Sie das Problem mit Ihrem Endpunkt und aktivieren Sie dann den Webhook manuell erneut
  • Überprüfen Sie die Zustellungsprotokolle auf Fehlerdetails zu den Fehlerursachen