콘텐츠로 이동
AstroWay/api v2.95.1 · ko
모든 시스템 정상 작동 중

Cosmic Notifications — вебхуки на астрособытія

이 콘텐츠는 아직 번역되지 않았습니다.

Перетворіть AstroWay API з request-response на подієвий стрім. Замість того щоб опитувати небо в циклі, ви підписуєте URL на тип події — і AstroWay сам надсилає вебхук у момент її настання (підписаний HMAC-SHA256, з авто-повторами та авто-відключенням «мертвих» підписок).

Усі ці події глобальні (стан неба, не залежить від натальних даних) — підписники отримують однаковий 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) у hex. Звіряйте з заголовком 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 → пауза/відновлення скидає лічильник.

Реєстрація та керування підписками — Tier 1 (10 кредитів) за виклик, виконуються рідко. Доставка події на ваш URL не тарифікується — окремого тарифу немає.

도움이 되었나요?
Запропонувати правку

마지막 업데이트: