Aby wysyłać dane z RSS do webhooka, potrzebujesz rozwiązania, które regularnie sprawdza kanał, wykrywa nowe wpisy i wysyła każdy z nich na podany adres URL za pomocą żądania HTTP POST. Reguła „Opublikuj za pomocą Webhooka” w Feederze robi to dla dowolnej liczby kanałów, z wbudowanymi filtrami słów kluczowych i ponawianiem prób. Możesz też użyć narzędzi do automatyzacji, takich jak Zapier, Make, IFTTT i n8n, albo krótkiego skryptu uruchamianego na własnym serwerze.
Jakie są sposoby wysyłania danych RSS do webhooka?
| Sposób | Sprawdzi się, gdy | Warto wiedzieć |
|---|---|---|
| Reguła „Opublikuj za pomocą Webhooka” w Feederze | Chcesz obsługiwać wiele kanałów, filtrować wpisy według słów kluczowych i używać jednego formatu JSON dla wszystkich kanałów | Dostępna w planie Feeder Professional. Szczegóły znajdziesz poniżej. |
| Zapier, Make, IFTTT lub n8n | Chcesz przekazywać każdy wpis do innych aplikacji bez pisania kodu | Pola trzeba mapować samodzielnie. Każde narzędzie ma własne plany i limity. |
| Skrypt | Jesteś programistą i chcesz mieć pełną kontrolę | Musisz go hostować i zaplanować jego uruchamianie, a także śledzić, które wpisy zostały już wysłane. |
Jak działa reguła „Opublikuj za pomocą Webhooka” w Feederze?
„Opublikuj za pomocą Webhooka” to jedna z akcji dostępnych w sekcji Reguły w Feederze. Utwórz regułę, w polu Co powinno się stać? wybierz Opublikuj za pomocą Webhooka, wklej adres URL punktu końcowego i wskaż kanały, foldery lub opcję Wszystkie kanały, które mają być monitorowane. Jeśli chcesz wysyłać tylko wybrane wpisy, dodaj słowa kluczowe. Od tej chwili Feeder będzie wysyłać na podany adres każdy nowy wpis spełniający kryteria.
W artykule Tworzenie własnych integracji za pomocą webhooków znajdziesz instrukcje krok po kroku i zrzuty ekranu, a wpis o uruchomieniu tej funkcji pokazuje regułę w działaniu. Informacje na tej stronie pochodzą z kodu, który wysyła webhooki.
Jakie dane Feeder wysyła do webhooka?
Dla każdego wpisu wysyłane jest jedno żądanie HTTP POST z treścią w formacie JSON i następującymi nagłówkami:
POST /hooks/rss HTTP/1.1
Content-Type: application/json
User-Agent: Feeder-Webhooks/1.0
X-Feeder-Signature: sha256=<HMAC-SHA256 of the body, in hex>
Poniżej znajduje się treść przykładowego żądania dotyczącego wpisu z bloga Feeder. Pole content zostało skrócone. Feeder wysyła je w jednym wierszu, tutaj zostało rozbite na kilka wierszy, aby ułatwić odczytanie.
{
"version": "2023-06-26",
"message_id": "3f1c9a52-7e4b-4d0a-9b6e-2c8d51f0a7e4",
"post": {
"id": "aff2424a-abc9-11f1-afb3-1a21cf3a468a",
"title": "Feed your AI",
"url": "https://feeder.co/blog/1208-feed-your-ai",
"published": "2026-09-08T20:19:59Z",
"content": "\u003cp\u003eWith Feeder's MCP server, you can connect Feeder to your AI client of choice.\u003c/p\u003e",
"audio_url": null,
"image_url": "https://uploads.feedercdn.com/8XSXZN92WHeb2d17f3440d-feedyourai-1024x538.png"
},
"feed": {
"id": "21f058e947",
"source_url": "https://feeder.co/blog.rss",
"public_url": "https://feeder.co/blog",
"title": "Feeder.co",
"favicon": "https://icons.feedercdn.com/feeder.co"
}
}
| Pole | Zawartość |
|---|---|
version | Wersja formatu: 2023-06-26. |
message_id | Nowy identyfikator każdej wiadomości. Przy ponowieniu tej samej wiadomości identyfikator się nie zmienia, dzięki czemu możesz pomijać duplikaty. |
post.id | Identyfikator wpisu w Feederze. |
post.title | Tytuł wpisu. |
post.url | Link do wpisu w witrynie. |
post.published | Data publikacji wpisu w formacie znacznika czasu RFC 3339 albo null. |
post.content | Treść wpisu w HTML, zgodna z zawartością kanału: cały artykuł albo jego streszczenie. |
post.audio_url | Plik MP3 dołączony do wpisu, na przykład odcinek podcastu, albo null. |
post.image_url | Obraz dołączony do wpisu, a jeśli go nie ma, pierwszy obraz w treści wpisu, albo null. |
feed.id | Krótki identyfikator kanału w Feederze. |
feed.source_url | Adres kanału. |
feed.public_url | Adres witryny, do której należy kanał. |
feed.title | Tytuł kanału. |
feed.favicon | Adres ikony witryny. |
W polu content znaki <, > i & są przesyłane jako \u003c, \u003e i \u0026. To prawidłowy format JSON, a każdy parser JSON zamieni je z powrotem na HTML.
Kiedy uruchamia się webhook?
- Tylko dla nowych wpisów. Reguła działa na wpisach wykrytych przez Feeder po jej zapisaniu. Nie wysyła wpisów, które już masz.
- Osobno dla każdego wpisu. Każdy wpis spełniający kryteria jest wysyłany w osobnym żądaniu. Feeder nie łączy wpisów w paczki. Jeśli witryna później zmieni wpis, a Feeder wykryje tę zmianę, zmieniona wersja również zostanie wysłana.
- Zaraz po kolejnym sprawdzeniu kanału. W planie Professional Feeder domyślnie sprawdza kanały co 10 minut. Możesz ustawić aktualizowanie kanału nawet co minutę. Zobacz artykuł Jak często Feeder sprawdza kanały.
- Tylko dla wpisów spełniających kryteria. Jeśli ustawisz słowa kluczowe, wysyłane będą tylko pasujące wpisy. Bez słów kluczowych wysyłany jest każdy nowy wpis. Wpis ukryty przez regułę Filtruj posty lub Filtruj duplikaty nie zostanie wysłany.
Co się stanie, jeśli mój punkt końcowy nie działa?
Feeder czeka na odpowiedź do 60 sekund. Odpowiedź ze statusem 2xx oznacza, że wiadomość została dostarczona. Jeśli punkt końcowy zwróci błąd, na przykład 404 lub 500, albo w ogóle nie odpowie, Feeder ponowi próbę maksymalnie 8 razy:
| Próba | Czas od poprzedniej próby |
|---|---|
| 2 | 5 sekund |
| 3 | 30 sekund |
| 4 | 1 minuta |
| 5 | 5 minut |
| 6 | 10 minut |
| 7 | 30 minut |
| 8 | 30 minut |
| 9 | 30 minut |
Po dziewiątej próbie, czyli około 1 godzinie i 47 minutach od pierwszej, Feeder przestaje ponawiać wysyłkę danego wpisu. Każda nieudana próba pojawia się w dzienniku błędów reguły. Otwórz regułę i wybierz Otwórz dziennik błędów. Jeśli podczas oczekiwania na ponowienie zmienisz adres URL w regule, kolejne próby zostaną wysłane na nowy adres. Opcja Wyślij wiadomość testową wysyła pojedynczą wiadomość testową bez ponawiania prób.
Co powinien robić mój punkt końcowy?
- Odpowiadaj szybko. Najpierw zwróć status 2xx, a czasochłonne zadania wykonaj później, aby odpowiedzieć znacznie szybciej niż w ciągu 60 sekund.
- Pomijaj duplikaty. Jeśli serwer przetworzył wiadomość, ale odpowiedział zbyt późno, przy ponowieniu otrzyma ją ponownie. Zapisuj wartości
message_idlubpost.id, które zostały już obsłużone. - Używaj docelowego adresu. Adres URL musi zawierać ścieżkę, na przykład
https://example.com/hooks/rss, i wskazywać serwer dostępny w publicznym internecie. Feeder nie wysyła żądań na adresy lokalne ani prywatne. Unikaj też przekierowań. Po przekierowaniu 301, 302 lub 303 żądanie dociera jako GET, bez treści JSON. - Weryfikuj podpis. Każda osoba znająca Twój adres URL może wysłać na niego żądanie, dlatego ufaj tylko żądaniom z prawidłowym nagłówkiem
X-Feeder-Signature. W następnej sekcji znajdziesz instrukcję weryfikacji.
Jak sprawdzić, czy żądanie pochodzi z Feedera?
Feeder podpisuje każde żądanie za pomocą sekretu webhooka przypisanego do reguły. Aby go znaleźć, otwórz regułę, włącz opcję Zaawansowane, skopiuj sekret webhooka i zapisz regułę. Nagłówek X-Feeder-Signature zawiera wartość sha256=, po której następuje zapisany szesnastkowo HMAC-SHA256 treści żądania, utworzony przy użyciu tego sekretu.
Aby sprawdzić podpis, oblicz taki sam HMAC na podstawie niezmienionej treści żądania, zanim zinterpretujesz JSON, a następnie porównaj obie wartości w stałym czasie. W Pythonie:
import hashlib, hmac
def from_feeder(body, header, secret):
expected = "sha256=" + hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, header or "")
W tym przykładzie body to treść żądania w postaci bajtów. Odrzuć żądanie, jeśli funkcja from_feeder zwróci False. Ponawiane żądania są podpisywane aktualnym sekretem reguły, więc zmiana sekretu obejmuje również ponowienia.
Czy Feeder może wysyłać do webhooka zbiorcze podsumowanie?
Nie. Reguła „Opublikuj za pomocą Webhooka” wysyła osobne żądanie dla każdego wpisu, gdy tylko Feeder go wykryje. Jeśli chcesz otrzymywać podsumowanie, masz trzy możliwości:
- Grupuj wpisy po swojej stronie. Zapisuj wpisy otrzymane przez punkt końcowy i wysyłaj własne podsumowanie według harmonogramu.
- Korzystaj z podsumowań e-mailowych. W planach Plus i Professional Feeder może wysyłać e-mailem codzienne, cotygodniowe lub comiesięczne podsumowanie wybranych kanałów. Zobacz artykuł Powiadomienia o nowych wpisach.
- Opublikuj kanał. W planie Professional możesz opublikować folder lub kolekcję jako kanał RSS albo JSON i ustawić własne narzędzie tak, by sprawdzało go zgodnie z harmonogramem. Zobacz artykuł Jak eksportować wpisy jako kanały RSS i JSON.
Jak wysyłać dane RSS do webhooka za pomocą Zapiera, Make, IFTTT lub n8n?
Każde z tych narzędzi łączy wyzwalacz RSS z akcją HTTP. Nazwy sprawdziliśmy na stronach poszczególnych narzędzi 28 września 2026 roku:
| Narzędzie | Wyzwalacz | Akcja | Warto wiedzieć |
|---|---|---|---|
| Zapier | RSS by Zapier: Nowy wpis w kanale albo Nowe wpisy w wielu kanałach | Webhooks by Zapier: POST | Webhooks by Zapier to płatna aplikacja, którą Zapier udostępnia wyłącznie w płatnych planach. |
| Make | RSS: Monitoruj wpisy w kanale RSS | HTTP: Wyślij żądanie | Moduł RSS odczytuje kanały RSS i Atom. |
| IFTTT | RSS Feed: Nowy wpis w kanale | Webhooks: Wyślij żądanie internetowe | W bezpłatnym planie IFTTT sprawdza kanały co godzinę, a w planach Pro i Pro+ co 5 minut. |
| n8n | Węzeł Wyzwalacz kanału RSS | Węzeł Żądanie HTTP z metodą POST | Częstotliwość sprawdzania kanału ustawisz w sekcji Harmonogram sprawdzania. |
Te narzędzia to najszybsze rozwiązanie, jeśli już z któregoś korzystasz. Możesz też połączyć je z Feederem: jako adres docelowy reguły „Opublikuj za pomocą Webhooka” podaj wyzwalacz Zapiera Catch Hook albo węzeł Webhook w n8n. Feeder będzie wtedy monitorować kanały i filtrować wpisy, a dalszą część procesu obsłuży Twój przepływ pracy.
Jak wysyłać dane RSS do webhooka za pomocą skryptu?
Poniższy skrypt w Pythonie wysyła każdy nowy wpis z jednego kanału do webhooka. Informacje o wysłanych wpisach zapisuje w pliku seen.txt, dzięki czemu każdy wpis jest wysyłany tylko raz. Przy pierwszym uruchomieniu wysyła wszystkie wpisy znajdujące się w danym momencie w kanale.
import json, pathlib, urllib.request
import feedparser # pip install feedparser
FEED_URL = "https://example.com/feed.xml"
WEBHOOK_URL = "https://example.com/hooks/rss"
seen_file = pathlib.Path("seen.txt")
seen = set(seen_file.read_text().split()) if seen_file.exists() else set()
for entry in reversed(feedparser.parse(FEED_URL).entries):
key = entry.get("id") or entry.get("link")
if not key or key in seen:
continue
payload = {"title": entry.get("title"), "url": entry.get("link"), "published": entry.get("published")}
request = urllib.request.Request(WEBHOOK_URL, data=json.dumps(payload).encode(),
headers={"Content-Type": "application/json"})
urllib.request.urlopen(request, timeout=30)
seen.add(key)
seen_file.write_text("\n".join(seen))
Skrypt wymaga Pythona 3 i pakietu feedparser (pip install feedparser). Uruchamiaj go według harmonogramu, na przykład co 15 minut za pomocą crona: */15 * * * * cd /path/to/folder && python3 rss_to_webhook.py. Jeśli punkt końcowy zwróci błąd, skrypt się zatrzyma, a przy następnym uruchomieniu ponownie spróbuje wysłać ten sam wpis.
Często zadawane pytania
Czy reguła „Opublikuj za pomocą Webhooka” może wysyłać dane RSS do webhooka Slacka, Teams lub Discorda?
Nie bezpośrednio. Feeder wysyła dane we własnym formacie JSON, a nie w formacie wiadomości wymaganym przez te aplikacje. Zamiast tego użyj reguły Feedera Opublikuj w Slacku, Opublikuj w Microsoft Teams lub Opublikuj na Discordzie, albo pośredniczącego narzędzia, takiego jak Zapier, Make lub n8n.
W którym planie Feedera dostępne są webhooki?
Reguła „Opublikuj za pomocą Webhooka” jest dostępna w planie Professional. Reguły filtrowania, oznaczania gwiazdką lub zbierania wpisów działają również w planie Plus.
Czy webhook zawiera cały artykuł?
Webhook zawiera treść udostępnianą przez kanał. Pole content zawiera cały artykuł, jeśli kanał go udostępnia, a jeśli kanał zawiera tylko streszczenie, pole zawiera streszczenie.
Czy mogę przetestować punkt końcowy przed zapisaniem reguły?
Tak. Opcja Wyślij wiadomość testową wysyła na podany adres URL jeden prawdziwy wpis z Twoich kanałów. Na koncie musi znajdować się przynajmniej jeden kanał z wpisami.
Wypróbuj Feeder
Feeder to czytnik RSS dostępny w przeglądarce oraz na urządzeniach z systemami iOS i Android. Oferuje też rozszerzenia do Chrome, Firefox i Edge. Bezpłatny plan obsługuje do 200 kanałów, nie wyświetla reklam i aktualizuje kanały nawet co 30 minut. Plan Plus obsługuje 2500 kanałów, aktualizuje je nawet co 5 minut i obejmuje podsumowania e-mailowe.
Zacznij bezpłatnie korzystać z Feedera