Перейти до вмісту

Прийміть перший вебхук

Railhook може приймати вебхуки від стороннього провайдера, перевіряти, що вони справді від нього, і пересилати їх на ваші сервіси. Знадобляться ідентифікатор проєкту та API-ключ. Усе це також можна зробити в розділі Вхідні панелі керування.

Terminal window
export RAILHOOK_URL=https://railhook.io # or your own instance
export RAILHOOK_API_KEY=...
export PROJECT_ID=...
  1. Створіть джерело

    Джерело — це підключений провайдер разом із тим, що потрібно 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_GENERIC HMAC від сирого тіла, зчитаний із заголовка та префікса, які ви задали
    NONE Нічого. Лише поки ви підключаєте провайдера
  2. Передайте провайдеру ingress-адресу

    Відповідь містить ingressUrl у вигляді https://your-host/ingress/<token>. Вставте її в налаштування вебхуків провайдера.

  3. Додайте призначення

    Призначення — це ваша адреса, що отримує прийняте джерелом, разом зі способом автентифікації до неї.

    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. Джерело пересилає кожен перевірений вебхук на кожне своє увімкнене призначення.

  4. Надішліть тестовий вебхук і простежте його

    Надішліть тестовий вебхук із панелі провайдера. Він з’явиться в розділі Вхідні → Отримані, з одним пересиланням на кожне призначення. Пересилання, якому забракло повторів, переходить до Невдалих пересилань.

Статус Значення
202 Прийнято й збережено
401 Перевірку налаштовано, а підпис не збігся. Нічого не збережено
404 Жодне джерело не має такого токена
410 Джерело існує, але вимкнене
413 Тіло перевищує ліміт розміру для вхідних
429 Вичерпано посекундний ліміт джерела