Kosmik Görev Bildirimleri - AstroWay'da Web Hook
AstroWay API’si request-response modelünden geri akışlı akış modeline dönüştürün. Başka bir deyişle, yerine astrolojiyi sorgulamak yerine, AstroWay API’si size olayın gerçekleştiğinde webhook gönderir (HMAC-SHA256 ile imzalanmış, otomatik tekrarlanan ve “ölü” aboneliklerin otomatik olarak devre dışı bırakılan).
Olaylar (canlı)
Section titled “Olaylar (canlı)”Tüm bu olaylar dünya çapında (çevre koşullarına bağlı değil) - aboneler aynı payload alırlar.
| Olay | Kayıt | Olay gerçekleştiğinde |
|---|---|---|
retrograde-start | POST /v1/webhooks/retrograde-start | gezegen (Mercür-Piyon) geriye döner |
retrograde-end | POST /v1/webhooks/retrograde-end | gezegen (geriye döndükten sonra) doğrudan döner |
sign-ingress | POST /v1/webhooks/sign-ingress | gezegen (Güneş + Mercür-Piyon) yeni bir burçta girer |
void-of-course-start | POST /v1/webhooks/void-of-course-start | Ay’ın “burçsuz” olduğu (VOC) bir döneme girer |
eclipse-alert | POST /v1/webhooks/eclipse-alert | 7 gün önce güneş veya Ay tutulmasından önce |
Abonelik Nasıl Yapılır
Section titled “Abonelik Nasıl Yapılır”Abonelik için API anahtarı gereklidir.
curl -X POST https://api.astroway.info/v1/webhooks/retrograde-start \ -H "X-Api-Key: aw_live_..." \ -H "Content-Type: application/json" \ -d '{ "url": "https://your-app.com/hooks/astroway" }'# { "id": 44, "event": "retrograde-start",# "url": "https://your-app.com/hooks/astroway",# "signing_secret": "a1b2…", ← збережіть, ним перевіряється підпис# "active": true }Abonelikleri yönetmek için GET /v1/webhooks (liste), GET /v1/webhooks/{id}, DELETE /v1/webhooks/{id}, POST /v1/webhooks/{id}/test (aboneliğinizin URL’sine test gönderme) kullanılır.
Aboneliğinizin URL’sine Ne Geliyor
Section titled “Aboneliğinizin URL’sine Ne Geliyor”POST ile gönderilen isteklerde X-AstroWay-Signature: sha256=<hmac>, X-AstroWay-Event, X-AstroWay-Delivery-Id ve body ile birlikte gönderilir:
{ "event": "retrograde-start", "delivered_at": "2026-07-15T12:00:00.000Z", "subscription_id": 44, "data": { "planet": "Mercury", "station": "retrograde", "exactAt": "2026-07-15T11:48:09.967Z", "sign": "Leo", "longitude": 142.31 }}İmza Kontrolü
Section titled “İmza Kontrolü”İmza, HMAC-SHA256(signing_secret, raw_body) hex değeridir. X-AstroWay-Signature (sha256= ön ekinin kaldırılması) ile kontrol ediniz:
import { createHmac, timingSafeEqual } from 'node:crypto';
function verify(rawBody, header, secret) { const expected = createHmac('sha256', secret).update(rawBody).digest('hex'); const got = header.replace(/^sha256=/, ''); return got.length === expected.length && timingSafeEqual(Buffer.from(got), Buffer.from(expected));}Abonelik otomatik olarak 5 tekrarlı teslimat başarısızlığı (2xx olmayan veya 8 saniye beklenmeden) sonra devre dışı bırakılır - yeniden etkinleştirme GET /v1/webhooks → pause/enable ile yapılır.
Abonelik ve abonelik yönetimi Tier 1 (10 kredi) ile yapılır. Aboneliğinizin URL’sine olay teslimatı ücretli değildir.