Skip to main content

Hızlı başlangıç: ilk webhook’unuzu alın

Orbit olaylarını platformdan dışarı taşıyan üç teslim yüzeyi vardır; bu rehber birini seçmenize yardımcı olur, ardından kayıtlı uç nokta döngüsünü — tünel, kayıt, doğrulama, yeniden oynatma — uçtan uca yürütür.

Step 1 — Pick a delivery surface

Üç yüzeyi ayıran çizgi nettir: deneme yanılma için Tester, üretim değeri taşıyan her şey için kayıtlı uç nokta, kendi Kafka ya da parti toplama altyapınıza yüksek hacimli akış için event sink. Start with the Tester when you’re experimenting. Graduate to a registered endpoint as soon as the integration is real — the tester cannot sign requests, so it never exercises your verification logic. Choose an event sink when per-endpoint receivers are the wrong shape — Kafka, batch, or many event types over one destination.
Event-sink delivery is not live yet: the config API (GET/PATCH /api/v1/developer/event-sinks/{kind} for kafka and http_batch) stores configs today, but nothing flows through a sink until the delivery worker ships. Until then, a registered webhook endpoint is the only durable consumer surface. Check the warning block on the Event Sinks API page for the current status.
Bu rehberin geri kalanı kayıtlı uç nokta döngüsünü yürütür. Yalnızca keşfetmek için geldiyseniz Webhook Tester sayfasını açın ve bir istek imza kontrolünden geçemediğinde buraya dönün.

Step 2 — Expose a local endpoint with a tunnel

Yerelde herhangi bir sade HTTP dinleyicisi çalıştırın ve önüne kamuya açık bir URL koyun; bir sonraki adımda kaydedeceğiniz adres, tünelin HTTPS yönlendirme adresidir. Kayıt ve yeniden oynatma boyunca tüneli açık tutun.

Step 3 — Register the endpoint in the console (or over the API)

Panoda Developer → Webhooks → Add endpoint yolunu izleyin (aynı yere Settings → Webhooks altından da ulaşılır). Tünel URL’nizi yapıştırın, bir-iki olay türüne abone olun ve kaydedin. Konsol, açık imza gizli anahtarını (whsec_...) tam olarak bir kez gösterir — şimdi bir ortam değişkenine kopyalayın. Aynı kayıt API veya SDK’ler üzerinden:
Go, Ruby ve PHP aynı rotayı her istemcinin tipli olmayan istek yönteminden (client.Request / client.request / $client->request) POST eder — tipli sarmalayıcılar çekirdek kaynakları kapsar, webhook’lar o kaçış yolundan gider. Yanıt, uç nokta kimliğinizi (wh_...) ve bir kez görülen açık gizli anahtarı (whsec_...) taşır — şimdi kalıcı olarak saklayın; çünkü uç noktaya sonraki her GET, whsec_********...b7a1 benzeri maskeli bir değer döndürür:
events listesini dar tutmak test trafiğini sağlıklı kılar; * bir üretim kararıdır, geliştirme kararı değil.

Step 4 — Receive and verify the signature

Kayıtlı teslimler, t=<unix>,v1=<hex> biçiminde bir X-Orbit-Signature başlığıyla imzalı gelir. Alıcınız, ham istek baytları üzerinde — bir JSON ara katmanı onlara dokunmadan önce — HMAC_SHA256(secret, "<t>.<raw body>") hesaplayıp doğrulamalı ve 5 dakikadan eski zaman damgalarını reddetmelidir. Bunu tek çağrıyla SDK yapar; çevresindeki tesisat (ham gövde, başlık yedeği, hatada 401) sizin doğru kurmanız gereken kısımdır. Beş dilde tam alıcılar:
Her işleyici, herhangi bir JSON ayrıştırıcı dokunmadan önce ham gövdeyi okur, X-Orbit-Signature’dan miras X-Devotel-Signature’a düşer, tek SDK çağrısıyla doğrular ve başarısızlıkta 401 yanıtı verir — böylece yeniden denemeler asla sahte trafiği onaylamaz. Java ve C# alıcıları ile gizli anahtar rotasyonu ve hata giderme Verify webhook signatures sayfasındadır. 30 saniyelik teslim penceresi içinde 2xx dönün ve zarf id’sine göre tekilleştirin — yeniden denemeler ve yeniden oynatmalar aynı id’yi tekrar teslim eder. Tam sözleşme (yeniden deneme takvimi, dead-letter kuyruğu, kesin-ölü durumlar) Webhooks overview sayfasındadır; Build your first webhook receiver iki dilde tam bir gerçekleme yürütür, Webhook security yedi dilde doğrulayıcılar sunar.

Step 5 — Replay deliveries from the console

Her teslim denemesi Developer → Webhooks → Events altında incelenebilir — bir satırı seçin ve sunucunuzun döndürdüğü yükü ile yanıtı görün. Başarısız bir teslim, teslim satırındaki Replay ile yeniden gönderilebilir; böylece alıcınızı düzeltip aynı imzalı olayı yeni trafik tetiklemeden yeniden ateşlersiniz. Yeniden deneme takvimini tüketen teslimler, Developer → Webhooks → Dead-letter queue altındaki dead-letter kuyruğuna düşer ve 7 gün boyunca yeniden oynatılabilir. Tek satır yerine biriken bir kuyruğu yeniden ateşleyecekseniz o ekrandaki toplu yeniden oynatma akışını kullanın. İki yol da Inspecting deliveries sayfasında kapsanır.

Step 6 — Move to an event sink when you outgrow HTTP receivers

Alıcı başına kayıtlı bir uç nokta, artık öyle olmayana dek doğru biçimdir — geçiş sinyalleri somuttur:
  • Akış aşağınız Kafka ise. kafka sink’ini broker’larınıza doğrultun ve her olay grubu için HTTP alıcıları işletmeyi bırakın.
  • Olay başına POST değil parti istiyorsanız. http_batch sink’i, yapılandırılabilir parti boyutunda bir JSON dizisi boşaltır.
  • Her şeyi yakalamak için *’a abone oluyorsanız. Tüm taksonomiyi taşıyan tek sink, bir wildcard uç nokta filosundan iyidir.
Sink’i konsolda Developer → Event Sinks altında ya da Event Sinks API üzerinden yapılandırın:
Kimlik bilgisi yalnız yazılır — okumalar gizli anahtarı asla döndürmez, bir credentials_configured boolean’ı döndürür. Kayıt biçimi webhook zarfıyla bayt-özdeştir; bu yüzden bugün yazdığınız bir tüketici, sink teslimi canlıya geçtiğinde çalışmaya devam eder; o zamana dek kalıcı trafiği webhook’larda tutun ve sink’i yalnız yapılandırmayı hazırlamak için kullanın. Tam fan-out modeli Webhook fan-out: one event, many destinations sayfasındadır.

See also