Прийміть перший вебхук
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-підпис необробленого тіла запиту; Railhook бере його із заголовка з префіксом, які ви налаштували NONEНічого. Вмикайте лише на час підключення провайдера -
Передайте провайдеру ingress-адресу
Відповідь містить
ingressUrlу виглядіhttps://your-host/ingress/<token>. Вставте її в налаштування вебхуків на боці провайдера. -
Додайте призначення
Призначення це ваш URL, який отримує все, що приймає джерело, разом зі способом автентифікації на ньому.
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 |
Перевірку налаштовано, а підпис не збігся. Нічого не збережено |
403 |
Організацію призупинено |
404 |
Жодне джерело не має такого токена або його проєкт видалено |
410 |
Джерело існує, але його вимкнено |
413 |
Тіло запиту перевищує ліміт розміру для вхідних вебхуків |
429 |
Вичерпано ліміт запитів джерела на секунду |