Прийміть перший вебхук
Railhook може приймати вебхуки від стороннього провайдера, перевіряти, що вони справді від нього, і пересилати їх на ваші сервіси. Знадобляться ідентифікатор проєкту та API-ключ. Усе це також можна зробити в розділі Вхідні панелі керування.
export RAILHOOK_URL=https://railhook.io # or your own instanceexport RAILHOOK_API_KEY=...export PROJECT_ID=...-
Створіть джерело
Джерело — це підключений провайдер разом із тим, що потрібно Railhook для перевірки його запитів.
Terminal window curl -X POST "$RAILHOOK_URL/api/v1/projects/$PROJECT_ID/incoming-sources" \-H "X-API-Key: $RAILHOOK_API_KEY" \-H "Content-Type: application/json" \-d '{"name":"Stripe","providerType":"STRIPE","verificationMode":"PROVIDER","hmacSecret":"whsec_..."}'Типи провайдерів:
GENERIC,GITHUB,GITLAB,STRIPE,SHOPIFY,SLACK,TWILIO. Режими перевірки:Режим Що перевіряється PROVIDERВласна схема підпису провайдера, обрана за його типом HMAC_GENERICHMAC від сирого тіла, зчитаний із заголовка та префікса, які ви задали NONEНічого. Лише поки ви підключаєте провайдера -
Передайте провайдеру ingress-адресу
Відповідь містить
ingressUrlу виглядіhttps://your-host/ingress/<token>. Вставте її в налаштування вебхуків провайдера. -
Додайте призначення
Призначення — це ваша адреса, що отримує прийняте джерелом, разом зі способом автентифікації до неї.
Terminal window curl -X POST "$RAILHOOK_URL/api/v1/projects/$PROJECT_ID/incoming-sources/$SOURCE_ID/destinations" \-H "X-API-Key: $RAILHOOK_API_KEY" \-H "Content-Type: application/json" \-d '{"url":"https://api.example.com/webhooks/stripe","authType":"BEARER","authConfig":"{\"token\":\"...\"}","enabled":true}'authType— одне зNONE,BASIC,BEARER,CUSTOM_HEADER. Джерело пересилає кожен перевірений вебхук на кожне своє увімкнене призначення. -
Надішліть тестовий вебхук і простежте його
Надішліть тестовий вебхук із панелі провайдера. Він з’явиться в розділі Вхідні → Отримані, з одним пересиланням на кожне призначення. Пересилання, якому забракло повторів, переходить до Невдалих пересилань.
Що відповідає ingress
Section titled “Що відповідає ingress”| Статус | Значення |
|---|---|
202 |
Прийнято й збережено |
401 |
Перевірку налаштовано, а підпис не збігся. Нічого не збережено |
404 |
Жодне джерело не має такого токена |
410 |
Джерело існує, але вимкнене |
413 |
Тіло перевищує ліміт розміру для вхідних |
429 |
Вичерпано посекундний ліміт джерела |