تخطَّ إلى المحتوى
AstroWay/api v2.172.2 · ar
جميع الأنظمة تعمل بشكل طبيعي

Cosmic Notifications - webhooks للأحداث الفلكية

تحویل AstroWay API من request-response إلى streaming الحدثات. بدلاً من طلب небو في الدورة، تقدم URL على نوع الحدث - و AstroWay نفسه يرسل webhook في اللحظة التي يحدث فيها (مصدومة HMAC-SHA256، مع التكرار الذاتي و إيقاف “الموت” للانضمام).

كل هذه الحدثات عالمية (حالة السماء، لا ت phụيد من البيانات المحلية) - يتلقى المتابعون نفس payload.

الحدثالتسجيلعندما يحدث
retrograde-startPOST /v1/webhooks/retrograde-startتصبح النجم (ميركوري–بلوتو) رتيبة
retrograde-endPOST /v1/webhooks/retrograde-endيخرج النجم من الرتوب (يصبح مباشراً)
sign-ingressPOST /v1/webhooks/sign-ingressيصبح النجم (شمس + ميركوري–بلوتو) يدخل إلى علامة جديدة
void-of-course-startPOST /v1/webhooks/void-of-course-startيبدأ فترة القمر “بدون مسار” (VOC)
eclipse-alertPOST /v1/webhooks/eclipse-alertفي 7 أيام قبل الظهور الشمسية أو القمرية

يحتاج إلى مفتاح API، مرتبط مع حسابك.

Terminal window
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 }

إدارة التسجيلات: GET /v1/webhooks (قائمة)، GET /v1/webhooks/{id}, DELETE /v1/webhooks/{id}, POST /v1/webhooks/{id}/test (اختبار التسليم على URLك).

POST مع رأس X-AstroWay-Signature: sha256=<hmac>, X-AstroWay-Event, X-AstroWay-Delivery-Id و جسم:

{
"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
}
}

التوقيع هو HMAC-SHA256(signing_secret, raw_body) في البايتات. فحص مع رأس X-AstroWay-Signature (بدون префикس sha256=):

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));
}

التسجيل يوقف بعد 5 تسليمات متتالية فاشلة (غير 2xx أو توقف 8 ثانية) - تفعيله مرة أخرى عبر GET /v1/webhooks → إيقاف/تفعيل يوقف العد التنازلي.

التسجيل والتعامل مع التسجيلات - تiers 1 (10 credits) لكل استدعاء، يتم تنفيذها نادرًا. التسليم الحدث على URLك لا يُتلف - لا توجد رسوم خاصة.

النص هو ترجمة MDX.

هل كان مفيدًا؟