En webhook-kanal sender JSON med POST til en URL du velger når en monitor går ned eller kommer opp igjen, og for andre varsler som trege svar, sertifikater som snart utløper og endrede DNS-poster. Hver forespørsel er signert, så endepunktet ditt kan sjekke at den virkelig kom fra Uptimecheck.
Legg til webhooken
Åpne Alert channels i sidepanelet og velg Add channel.Velg Webhook og skriv inn Endpoint URL.Velg Add channel og kopier signeringshemmeligheten som vises. Den vises bare én gang.Velg Send test for å sende et testkall.
Verifiser signaturen
Hver forespørsel har to headere:
x-uptimecheck-timestamp: Unix-tid i sekunder da forespørselen ble signert.x-uptimecheck-signature: sha256= etterfulgt av HMAC-SHA256 i heksadesimal av tidsstempelet, et punktum og den rå meldingskroppen, med kanalens signeringshemmelighet som nøkkel.
Beregn den samme verdien fra den rå meldingskroppen før du parser den, sammenlign i konstant tid, og avvis gamle tidsstempler. I Node.js:
import { createHmac, timingSafeEqual } from «node:crypto»;
export function isFromUptimecheck(rawBody, headers, secret) {
const timestamp = headers[«x-uptimecheck-timestamp»] ?? «»;
const signature = headers[«x-uptimecheck-signature»] ?? «»;
const expected = «sha256=» + createHmac(«sha256», secret).update(`${timestamp}.${rawBody}`).digest(«hex»);
const fresh = Math.abs(Date.now() / 1000 – Number(timestamp)) < 300;
return fresh && signature.length === expected.length && timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}
En Python-versjon og alle feltene i nyttelasten finner du i API-dokumentasjonen.
Greit å vite
Svar med en hvilken som helst 2xx-status innen 10 sekunder. Alt annet prøves på nytt fire ganger til, etter 30 s, 2 min, 10 min og 30 min.Feltet event forteller hva som skjedde, for eksempel monitor.down, monitor.up, monitor.slow, certificate.expiring eller dns.changed. API-referansen lister opp alle hendelsene og viser hvordan du verifiserer signaturen.Bruk HTTPS, og gjør tregt arbeid etter at du har svart.
Se alle varslingskanaler, eller automatiser oppsettet med REST API-et.