Skip to content

Webhooks ​

Webhooki łączą dAio z Twoimi własnymi systemami. Zamiast nieustannie odpytywać platformę, pozwalasz, by to dAio Cię powiadamiał: gdy tylko zachodzi zdarzenie — wyzwolony alert pogodowy, wykryte wysokie ryzyko — dAio wysyła w czasie rzeczywistym podpisane żądanie HTTP do wybranego przez Ciebie endpointu. W ten sposób automatyzujesz swoje przepływy pracy: otwieranie zgłoszeń, powiadomienia wewnętrzne, aktualizację pulpitu biznesowego lub uruchomienie planu działania w terenie.

To pomost między alertami dAio a Twoim systemem informatycznym.

Lista skonfigurowanych webhooków

Wskazówka : zacznij od jednego webhooka subskrybującego jeden typ zdarzenia, zwaliduj cały łańcuch od początku do końca, a następnie rozszerzaj. Unikniesz zalania swoich systemów powiadomieniami, zanim usprawnisz ich przetwarzanie.

Konfigurowanie webhooka ​

  1. Przejdź do Ustawienia > Webhooki.
  2. Kliknij Nowy webhook.
  3. Wpisz adres URL docelowy: endpoint HTTPS Twojego serwera (np. https://votre-serveur.com/webhook).
  4. Wybierz zdarzenia do nasłuchiwania, klikając odpowiednie etykiety.
  5. Zatwierdź przyciskiem Utwórz.

Przy tworzeniu automatycznie generowany jest sekret. Służy on do podpisywania każdego żądania za pomocą HMAC-SHA256 (zob. dalej): przechowuj go po stronie serwera, ponieważ pozwala zweryfikować, że każde wywołanie pochodzi rzeczywiście od dAio.

Uwaga : adres URL musi być w HTTPS i publicznie dostępny. Endpoint w zwykłym HTTP lub za zamkniętą zaporą sieciową nie będzie mógł odbierać dostaw.

Dostępne zdarzenia ​

ZdarzenieOpis
weather.alertWyzwolono alert pogodowy na obiekcie
weather.thresholdPrzekroczono niestandardowy próg pogodowy
air_quality.alertWydano alert jakości powietrza
pollen.alertWydano alert pyłkowy
marine.alertWydano alert warunków morskich
frost.alertWyzwolono alert przymrozkowy
storm.alertWyzwolono alert burzy / nawałnicy
business.risk_highWykryto wysoki poziom ryzyka dla Twojej działalności

Wskazówka : subskrybuj każdy webhook wyłącznie do zdarzeń rzeczywiście wykorzystywanych przez system docelowy. Endpoint «zgłoszenia» nie musi otrzymywać tych samych zdarzeń co endpoint «pulpit».

Format ładunku (payload) ​

Każda dostawa to żądanie POST, którego treścią jest obiekt JSON. Ogólna struktura jest następująca:

json
{
  "event": "weather.alert",
  "timestamp": "2026-06-30T08:15:00Z",
  "data": {
    "site_id": 42,
    "site_name": "Entrepôt Nord",
    "severity": "high",
    "message": "Vent fort attendu (rafales > 80 km/h)"
  }
}

Pole event identyfikuje typ zdarzenia, timestamp wskazuje datę wystawienia (UTC, format ISO 8601), a data zawiera szczegóły właściwe dla zdarzenia.

Uwierzytelnianie HMAC-SHA256 ​

Każde żądanie jest podpisywane Twoim sekretem za pomocą HMAC-SHA256. Podpis przekazywany jest w nagłówku X-Daio-Signature, w formacie sha256=<signature>.

Weryfikuj ten podpis systematycznie przed przetworzeniem żądania: to właśnie gwarantuje, że wywołanie pochodzi od dAio i że ładunek nie został zmieniony.

Weryfikacja po stronie serwera (Python):

python
import hmac, hashlib

def verify_webhook(payload, signature, secret):
    expected = hmac.new(
        secret.encode(), payload, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Uwaga : oblicz podpis na surowej treści żądania (otrzymanych bajtach), przed jakąkolwiek deserializacją JSON. Najmniejsze przeformatowanie zmienia hash i powoduje niepowodzenie weryfikacji.

Testowanie i debugowanie ​

  • Kliknij ikonę Testuj (▶) obok webhooka, aby wysłać fikcyjne zdarzenie do swojego endpointu.
  • Odpowiedź HTTP 2xx potwierdza, że Twój serwer odebrał i zaakceptował żądanie.
  • Rozwiń webhook, aby zobaczyć jego ostatnie dostawy: kod HTTP, typ zdarzenia i znacznik czasu.
  • Kolorowa kropka wskazuje stan webhooka: zielona = aktywny, czerwona = wyłączony po powtarzających się niepowodzeniach.

Historia dostaw ​

Każda wysyłka jest rejestrowana. Rozwiń webhook, aby zobaczyć dla każdej próby:

  • Kod HTTP odpowiedzi (zielony, jeśli < 300, w przeciwnym razie czerwony)
  • Dostarczony typ zdarzenia
  • Datę i godzinę próby

Licznik niepowodzeń wyświetla się na webhooku, gdy dostawy się nie powiodły.

Ponowne próby i niezawodność ​

dAio automatycznie ponawia dostawę w razie niepowodzenia, z rosnącymi odstępami. Twój endpoint musi więc być idempotentny: ta sama dostawa może dotrzeć wielokrotnie, a Twoje przetwarzanie musi dawać ten sam wynik bez efektów ubocznych.

Uwaga : Twój endpoint musi odpowiedzieć w czasie krótszym niż 10 sekund kodem HTTP 2xx. Powyżej tego czasu lub w przypadku kodu błędu dostawa jest uznawana za nieudaną i zostanie ponowiona. Po powtarzających się niepowodzeniach webhook jest automatycznie wyłączany.

Dobre praktyki ​

  • Zawsze weryfikuj podpis HMAC przed przetworzeniem ładunku: nigdy nie ufaj nieuwierzytelnionemu żądaniu.
  • Odpowiadaj szybko: zwróć natychmiast 200, a następnie przetwarzaj obciążenie w tle. Unikniesz przekroczeń limitu czasu i zbędnych ponowień.
  • Uczyń swoje przetwarzanie idempotentnym, aby bezpiecznie przyjmować wielokrotne dostawy.
  • Filtruj u źródła: subskrybuj każdy webhook wyłącznie do zdarzeń przydatnych dla jego systemu docelowego.
  • Monitoruj licznik niepowodzeń i historię dostaw, aby szybko wykryć uszkodzony endpoint, zanim zostanie wyłączony.
  • Używaj przycisku Testuj po każdej zmianie po Twojej stronie (wdrożenie, zmiana adresu URL), aby zwalidować łańcuch bez czekania na rzeczywiste zdarzenie.

Wskazówka : połącz swoje webhooki z alertami oraz z konfiguracją swojego zespołu, aby automatycznie kierować właściwą informację do właściwego systemu. Dostępność webhooków zależy od Twojej subskrypcji.

Guide utilisateur dAio Business