Webhook entegrasyonu
Webhook'larla dilediğiniz sistemleri yaklaşan toplama tarihleri hakkında proaktif olarak bilgilendirebilirsiniz – polling olmadan. binable, ayarlanan gün sayısı içinde bir toplama yaklaştığında URL'nize bir HTTP POST gönderir.
Webhook'lar doğrudan API üzerinden oluşturulabilir ve silinebilir. Kullanım örnekleri: n8n / Make otomasyonları, Discord veya Slack botları, ntfy.sh mesajları, ev otomasyon sistemleri ya da kendi uygulamalarınız.
1. API anahtarı oluşturun
Webhook oluşturabilmek için önce bir API anahtarına ihtiyacınız var. E-posta adresinizi kaydedin, anahtarınızı e-posta ile alırsınız.
2. Webhook oluşturun
API anahtarınız başlıkta olacak şekilde /api/webhook adresine bir POST isteği gönderin. Adres doğrudan istek gövdesinde iletilir.
curl -X POST https://binable.app/api/webhook \
-H "Authorization: ApiKey <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"
}'
Yanıt, webhook'un id ve secret değerini içerir:
{
"id": "018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56",
"url": "https://mein-server.example/webhook",
"secret": "a3f8b1c2d4e5...",
"daysBeforeCollection": 1,
"active": true
}
3. Payload & imza doğrulaması
binable, ayarlanan gün sayısı içinde bir toplama yaklaştığında her gün saat 18:00'de tüm aktif webhook'lara bir POST gönderir:
{
"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" }
]
}
Her istek X-Muell-Signature: sha256=<hmac> başlığını içerir. Node.js'te doğrulama:
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. Webhook silin
curl -X DELETE https://binable.app/api/webhook/018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56 \
-H "Authorization: ApiKey <dein-api-key>"
Başarılı olduğunda sunucu HTTP 204 (gövdesiz) ile yanıt verir.
← Entegrasyonlara genel bakış · Tam API dokümantasyonu (yeni sekmede açılır)