Webhook-integration
Med webhooks kan du proaktivt informere ethvert system om kommende afhentningsdatoer – uden polling. müll.io sender en HTTP POST til din URL, så snart en afhentning er forfalden inden for det konfigurerede antal dage.
Webhooks kan oprettes og slettes direkte via API'en. Anvendelsestilfælde: n8n/Make-automatiseringer, Discord- eller Slack-bots, ntfy.sh-beskeder, hjemmeautomatiseringssystemer eller brugerdefinerede applikationer.
1. Opret API-nøgle
For at oprette webhooks skal du først have en API-nøgle. Registrér din e-mailadresse, og du modtager din nøgle via e-mail.
2. Opret webhook
Send en POST-anmodning til /api/webhook med din API-nøgle i headeren. Adressen sendes direkte i anmodningens body.
curl -X POST https://müll.io/api/webhook \
-H "Authorization: API-KEY <dein-api-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://mein-server.example/webhook",
"daysBeforeCollection": 1,
"street": "Musterstraße",
"houseNumber": "1a",
"zip": "12345",
"city": "Musterstadt",
"country": "DE"
}'
Svaret indeholder id og secret for webhooken:
{
"id": "018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56",
"url": "https://mein-server.example/webhook",
"secret": "a3f8b1c2d4e5...",
"daysBeforeCollection": 1,
"active": true
}
3. Payload og signaturverifikation
müll.io sender dagligt en POST til alle aktive webhooks kl. 18:00, når en afhentning er forfalden inden for det konfigurerede antal dage:
{
"event": "upcoming_collection",
"sent_at": "2024-01-14T18:00:00+00:00",
"days_until": 1,
"address": {
"street": "Musterstraße",
"houseNumber": "1a",
"zip": "12345",
"city": "Musterstadt",
"country": "DE"
},
"collections": [
{ "type": "Restmüll", "date": "2024-01-15" },
{ "type": "Papier", "date": "2024-01-15" }
]
}
Hver anmodning indeholder headeren X-Muell-Signature: sha256=<hmac>. Verifikation i Node.js:
const crypto = require('crypto');
function verifySignature(body, secret, signatureHeader) {
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signatureHeader)
);
}
4. Slet webhook
curl -X DELETE https://müll.io/api/webhook/018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56 \
-H "Authorization: API-KEY <dein-api-key>"
Ved succes svarer serveren med HTTP 204 (ingen body).
← Integrationsoversigt · Fuld API-dokumentation (åbner i ny fane)