Webhook to wiadomość, którą jedna aplikacja wysyła drugiej, gdy coś się wydarzy. Co to jest webhook, jak go weryfikować i co wysyła sona.to.
Co to jest webhook? To wiadomość, którą jedna aplikacja wysyła drugiej w chwili, gdy coś się wydarzy, więc druga aplikacja nie musi ciągle pytać. Podajesz pierwszej aplikacji adres, a ona wysyła na niego szczegóły każdego zdarzenia, gdy tylko do niego dojdzie. Ten poradnik wyjaśnia, jak działają webhooki, jak sprawdzić, czy webhook jest prawdziwy, i co wysyła sona.to. Podsumowanie znajdziesz też na stronie webhooków.
Co to jest webhook?
Większość aplikacji wymienia dane na dwa sposoby. Przez API twój system pyta: „czy post jest już opublikowany?” i pyta ponownie później, jeśli odpowiedź brzmi nie. Przez webhook aplikacja sama cię informuje: gdy post zostanie opublikowany, wysyła żądanie na wybrany przez ciebie adres ze szczegółami posta.
Webhook to więc żądanie HTTP, zwykle POST z treścią w formacie JSON, wysłane na URL, który kontrolujesz. Tym adresem URL może być twój własny serwer albo adres webhooka udostępniony przez n8n, Zapier, Make, Slack lub inną usługę, która uruchamia przepływ, gdy żądanie dotrze.
Webhook a API
API służy do pytania i zmieniania: pobierania listy postów, tworzenia posta, odczytu liczb. Webhook służy do tego, żeby dostawać powiadomienia. Większość integracji korzysta z obu: z API, żeby utworzyć post, i z webhooka, żeby dowiedzieć się, kiedy został opublikowany albo się nie powiódł. Ciągłe odpytywanie API marnuje żądania i i tak daje informację z opóźnieniem, a webhook przychodzi, gdy tylko zdarzenie nastąpi.
Jak zweryfikować webhook
Każdy, kto zna adres twojego webhooka, mógłby wysłać na niego fałszywe żądanie, dlatego dobrze zrobiony webhook jest podpisany. Nadawca oblicza podpis z treści żądania i wspólnego sekretu, zwykle za pomocą HMAC SHA-256, i umieszcza go w nagłówku. Twoja strona oblicza ten sam podpis tym samym sekretem i porównuje oba porównaniem w stałym czasie. Jeśli się różnią, żądanie jest ignorowane.
Znacznik czasu w podpisywanych danych dodatkowo blokuje ataki powtórzeniowe: przechwyconego raz żądania nie da się wysłać ponownie później, bo jego znacznik czasu jest za stary.
Webhooki w sona.to
sona.to wysyła webhooki dla czterech zdarzeń: post został opublikowany, post się nie powiódł, audyt strony się zakończył i audyt strony się nie powiódł. Wybierasz, które zdarzenia odbiera każdy webhook, więc powiadomienia na czacie mogą obejmować tylko błędy, a arkusz z raportem może dostawać wszystko. Dane używają tych samych nazw pól co API sona.to.
Konfiguracja. Na stronie API w panelu wklej adres, zaznacz zdarzenia i zapisz. Sekret do podpisu jest pokazywany tylko raz, w tym momencie, więc skopiuj go od razu.
Podpis. Każde dostarczenie ma nagłówek ze znacznikiem czasu i HMAC SHA-256 ze znacznika czasu i treści, utworzonym twoim sekretem. Odrzucaj żądania, których znacznik czasu jest starszy niż kilka minut.
Ponowne próby. Jeśli twój adres jest niedostępny albo zwraca błąd, dostarczenie jest ponawiane po 60 sekundach, 5 minutach i 30 minutach. Każda próba jest zapisywana w logu z kodem statusu i czasem trwania. Adres, który stale zawodzi, zostaje wyłączony, a po naprawie możesz go włączyć z powrotem.
Bezpieczeństwo. Adres musi używać https i wskazywać na publiczny serwer. Adresy w sieciach prywatnych są odrzucane przy zapisie i ponownie przy dostarczeniu, a przekierowania nie są wykonywane.
Webhooki w n8n, Zapier i Make
Aplikacje sona.to dla n8n, Zapier i Make mają gotowe wyzwalacze dla tych samych czterech zdarzeń, więc nie musisz samodzielnie wklejać adresu: dodaj wyzwalacz, a aplikacja skonfiguruje webhook. Zobacz automatyzację social media w n8n, Zapier i Make.
Wszystkie szczegóły, z przykładem weryfikacji podpisu, znajdziesz w dokumentacji API.
Najczęstsze pytania
Czy webhook to to samo co API?
Nie. API odpowiada, gdy pytasz. Webhook wysyła ci wiadomość, gdy coś się wydarzy.
Czy webhooki sona.to są darmowe?
Webhooki są w każdym planie, razem z API.
Co się stanie, gdy mój serwer będzie niedostępny?
sona.to ponowi próbę trzy razy w ciągu mniej więcej pół godziny. Jeśli dostarczenia nadal się nie udają, webhook zostaje wyłączony, dopóki nie włączysz go z powrotem.
Chcesz wypróbować?
Zacznij za darmo, bez karty kredytowej.