RSS į webhook: kaip siųsti naujus įrašus į URL

Atnaujinta 2026 m. spalio 14 d. Skaitymo trukmė – 8 min.

Norint siųsti RSS į webhook, reikia įrankio, kuris nustatytu dažnumu tikrina sklaidos kanalą, aptinka naujus įrašus ir siunčia kiekvieną jų į jūsų URL adresą HTTP POST užklausa. Feeder taisyklė „Siųsti į Webhook“ tai atlieka su bet kokiu skaičiumi kanalų, be to, joje yra raktinių žodžių filtrai ir pakartotiniai bandymai. Tą patį galima padaryti ir naudojant automatizavimo įrankius, pvz., „Zapier“, „Make“, „IFTTT“ ir „n8n“, arba trumpą scenarijų savo serveryje.

Kokiais būdais galima siųsti RSS į webhook?

BūdasKam tinkaKą verta žinoti
Feeder taisyklė „Siųsti į Webhook“Daugeliui kanalų, raktinių žodžių filtrams ir vienodam JSON formatui visuose kanaluoseĮtraukta į „Feeder Professional“. Išsami informacija pateikta toliau.
„Zapier“, „Make“, „IFTTT“ arba „n8n“Kiekvieno įrašo perdavimui kitoms programėlėms be programavimoLaukus susiesite patys. Kiekvienas įrankis turi savus planus ir apribojimus.
ScenarijusKūrėjams, norintiems viską valdyti patiemsJį reikės talpinti serveryje, suplanuoti paleidimą ir sekti, ką jis jau išsiuntė.

Kaip veikia Feeder taisyklė „Siųsti į Webhook“?

„Siųsti į Webhook“ yra vienas iš Feeder taisyklių veiksmų. Sukurkite taisyklę, skiltyje Kas turėtų įvykti? pasirinkite Siųsti į Webhook, įklijuokite galutinio taško URL adresą ir pasirinkite stebimus kanalus, aplankus arba Visi kanalai. Jei norite siųsti tik dalį įrašų, pridėkite raktinių žodžių. Nuo tada Feeder siųs kiekvieną naują atitinkantį įrašą nurodytu URL adresu.

Instrukcijoje Kaip kurti savo integracijas naudojant webhook pateikti visi veiksmai ir ekrano kopijos, o paleidimo įraše parodyta, kaip taisyklė veikia. Šiame puslapyje pateikta informacija paimta iš webhook užklausas siunčiančio kodo.

Ką Feeder siunčia į mano webhook?

Kiekvienam įrašui siunčiama atskira HTTP POST užklausa su JSON turiniu ir šiomis antraštėmis:

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>

Toliau pateiktas Feeder tinklaraščio įrašo turinys, kuriame content sutrumpintas. Feeder siunčia jį viena eilute, čia turinys išskaidytas į kelias eilutes, kad būtų lengviau skaityti.

{
  "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"
  }
}
LaukasKas jame pateikiama
versionFormato versija: 2023-06-26.
message_idKiekvienam pranešimui priskiriamas naujas ID. Pakartotinai siunčiamam tam pačiam pranešimui paliekamas tas pats ID, todėl galite praleisti dublikatus.
post.idFeeder priskirtas įrašo ID.
post.titleĮrašo pavadinimas.
post.urlNuoroda į įrašą svetainėje.
post.publishedĮrašo paskelbimo laikas RFC 3339 formatu arba null.
post.contentĮrašas HTML formatu, toks, kokį pateikia sklaidos kanalas: visas straipsnis arba santrauka.
post.audio_urlPrie įrašo pridėto MP3 failo, pvz., tinklalaidės epizodo, URL adresas arba null.
post.image_urlPrie įrašo pridėto paveikslėlio URL adresas arba pirmojo paveikslėlio jo turinyje URL adresas, jei pridėto paveikslėlio nėra, arba null.
feed.idTrumpasis Feeder kanalo ID.
feed.source_urlKanalo adresas.
feed.public_urlSvetainė, kuriai priklauso kanalas.
feed.titleKanalo pavadinimas.
feed.faviconSvetainės piktogramos adresas.

Lauke content simboliai <, > ir & pateikiami kaip \u003c, \u003e ir \u0026. Tai galiojantis JSON formatas, o bet kuris JSON analizatorius juos paverčia atgal į HTML.

Kada siunčiama webhook užklausa?

  • Tik naujiems įrašams. Taisyklė veikia su įrašais, kuriuos Feeder aptinka po to, kai ją išsaugote. Jau turimų įrašų ji nesiunčia.
  • Kiekvienam įrašui po vieną kartą. Kiekvienas tinkamas įrašas siunčiamas atskira užklausa. Feeder nesujungia kelių įrašų. Jei svetainė vėliau pakeičia įrašą, o Feeder aptinka pakeitimą, bus išsiųsta ir atnaujinta versija.
  • Iškart po kito kanalo patikrinimo. „Professional“ plane Feeder pagal numatytuosius nustatymus kanalus tikrina kas 10 minučių, o kanalą galima nustatyti atnaujinti net kas minutę. Daugiau informacijos rasite straipsnyje Kaip dažnai Feeder tikrina kanalus.
  • Tik tinkamiems įrašams. Jei nurodyti raktiniai žodžiai, siunčiami tik juos atitinkantys įrašai. Jei raktinių žodžių nėra, siunčiami visi nauji įrašai. Įrašas, kurį paslepia taisyklė Filtruoti įrašus arba Filtruoti dublikatus, nesiunčiamas.

Kas nutinka, jei mano galutinis taškas neveikia?

Feeder laukia atsakymo iki 60 sekundžių. 2xx būsenos kodas reiškia, kad užklausa pristatyta. Jei galutinis taškas pateikia klaidą, pvz., 404 arba 500, arba visai neatsako, Feeder bando siųsti dar iki 8 kartų:

BandymasKiek laiko praėjus po ankstesnio bandymo siunčiama užklausa
25 sekundžių
330 sekundžių
41 minutės
55 minučių
610 minučių
730 minučių
830 minučių
930 minučių

Po devintojo bandymo, praėjus maždaug 1 valandai ir 47 minutėms nuo pirmojo, Feeder nustoja bandyti siųsti tą įrašą. Kiekvienas nepavykęs bandymas įrašomas į taisyklės klaidų žurnalą. Atidarykite taisyklę ir pasirinkite Atidaryti klaidų žurnalą. Jei laukdami pakartotinių bandymų pakeisite taisyklės URL adresą, kiti bandymai bus siunčiami nauju adresu. Pasirinkus Išbandykite pranešimą išsiunčiamas vienas bandomasis pranešimas, be pakartotinių bandymų.

Ką turėtų daryti mano galutinis taškas?

  • Atsakyti greitai. Pirmiausia atsakykite 2xx būsenos kodu, o lėtesnes užduotis atlikite vėliau, kad atsakymas neužtruktų ilgiau nei 60 sekundžių.
  • Praleisti dublikatus. Jei serveris apdorojo pranešimą, bet atsakė per vėlai, pakartotinai siunčiant jis bus gautas dar kartą. Išsaugokite jau matytas message_id arba post.id reikšmes.
  • Naudoti galutinį adresą. URL turi turėti kelią, pvz., https://example.com/hooks/rss, ir nurodyti į viešai internete pasiekiamą serverį. Feeder nesiunčia užklausų vietinio ar privataus tinklo adresais. Taip pat venkite peradresavimų: po 301, 302 arba 303 peradresavimo užklausa gaunama kaip GET be JSON turinio.
  • Tikrinti parašą. Jūsų URL adresą žinantis asmuo gali į jį siųsti užklausas, todėl pasitikėkite tik tomis, kurių X-Feeder-Signature galioja. Kaip tai padaryti, paaiškinta kitame skyriuje.

Kaip patikrinti, ar užklausą atsiuntė Feeder?

Feeder pasirašo kiekvieną užklausą naudodamas taisyklės webhook slaptąjį raktą. Norėdami jį rasti, atidarykite taisyklę, įjunkite Išplėstinis, nukopijuokite Webhook Secret reikšmę ir išsaugokite taisyklę. Antraštėje X-Feeder-Signature pateikiama sha256= reikšmė, po kurios eina užklausos turinio HMAC-SHA256 kontrolinė suma šešioliktainiu formatu, apskaičiuota naudojant tą slaptąjį raktą.

Norėdami ją patikrinti, apskaičiuokite tokią pačią HMAC kontrolinę sumą iš neapdoroto turinio prieš analizuodami JSON ir palyginkite abi reikšmes pastoviu laiku. „Python“ kalba:

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 "")

Šiame pavyzdyje body yra užklausos turinys baitais. Atmeskite užklausą, jei from_feeder grąžina False. Pakartotinės užklausos pasirašomos dabartiniu taisyklės slaptuoju raktu, todėl pakeistas slaptasis raktas taikomas ir joms.

Ar Feeder gali siųsti į webhook suvestinę?

Ne. „Siųsti į Webhook“ siunčia po vieną užklausą kiekvienam įrašui, kai tik Feeder jį aptinka. Suvestinę galima gauti trimis būdais:

  • Grupuoti įrašus savo pusėje. Saugokite kiekvieną galutinio taško gautą įrašą ir nustatytu laiku siųskite savo suvestinę.
  • Naudoti el. pašto suvestines. „Plus“ ir „Professional“ planuose Feeder gali kasdien, kas savaitę arba kas mėnesį el. paštu siųsti pasirinktų kanalų suvestinę. Žr. Kaip gauti pranešimus apie naujus įrašus.
  • Skelbti sklaidos kanalą. „Professional“ plane aplanką arba rinkinį galima paskelbti kaip RSS arba JSON kanalą, kurį jūsų įrankis skaitys pagal savo tvarkaraštį. Žr. Kaip eksportuoti įrašus kaip RSS ir JSON kanalus.

Kaip siųsti RSS į webhook naudojant „Zapier“, „Make“, „IFTTT“ arba „n8n“?

Kiekvienas įrankis sujungia RSS aktyviklį su HTTP veiksmu. Šių įrankių pavadinimus patikrinome jų oficialiose svetainėse 2026 m. rugsėjo 28 d.:

ĮrankisAktyviklisVeiksmasKą verta žinoti
„Zapier“RSS by Zapier: New Item in Feed arba New Items in Multiple FeedsWebhooks by Zapier: POST„Webhooks by Zapier“ yra mokamas priedas, kurį „Zapier“ siūlo tik mokamuose planuose.
„Make“RSS: Watch RSS Feed ItemsHTTP: Make a requestRSS modulis skaito RSS ir „Atom“ kanalus.
„IFTTT“RSS Feed: New feed itemWebhooks: Make a web requestNemokamame „IFTTT“ plane kanalai tikrinami kas valandą, o „Pro“ ir „Pro+“ planuose kas 5 minutes.
„n8n“RSS Feed Trigger mazgasHTTP Request mazgas su POST metoduKanalo tikrinimo dažnumą galite pasirinkti skiltyje Poll Times.

Šie įrankiai yra greičiausias būdas, jei jau naudojate kurį nors iš jų. Juos taip pat galite naudoti kartu su Feeder: nukreipkite taisyklę „Siųsti į Webhook“ į „Zapier“ aktyviklį Catch Hook arba „n8n“ mazgą Webhook. Tuomet Feeder stebės kanalus ir filtruos įrašus, o jūsų darbo eiga atliks kitus veiksmus.

Kaip siųsti RSS į webhook naudojant scenarijų?

Šis „Python“ scenarijus siunčia kiekvieną naują vieno kanalo įrašą į jūsų webhook. Jis įsimena, ką jau išsiuntė, faile seen.txt, todėl kiekvienas įrašas siunčiamas tik vieną kartą. Pirmą kartą paleidus scenarijų, išsiunčiami visi tuo metu kanale esantys įrašai.

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))

Reikalinga „Python 3“ ir „feedparser“ paketas (pip install feedparser). Paleiskite scenarijų pagal tvarkaraštį, pvz., kas 15 minučių naudodami „cron“: */15 * * * * cd /path/to/folder && python3 rss_to_webhook.py. Jei galutinis taškas pateikia klaidą, scenarijus sustoja, o kitą kartą paleistas vėl bandys siųsti tą patį įrašą.

Dažnai užduodami klausimai

Ar galiu naudodamas „Siųsti į Webhook“ siųsti RSS į „Slack“, „Teams“ arba „Discord“ webhook?

Ne tiesiogiai. Feeder siunčia savo JSON formatą, o ne šių programėlių laukiamą pranešimo formatą. Verčiau naudokite Feeder taisykles Siųsti į Slack, Siųsti į Microsoft Teams arba Siųsti į Discord, arba pasitelkite „Zapier“, „Make“ ar „n8n“ kaip tarpininką.

Kuriame Feeder plane yra webhook funkcija?

„Siųsti į Webhook“ įtraukta į „Professional“ planą. Taisyklės, skirtos įrašams filtruoti, pažymėti žvaigždute arba rinkti, veikia ir „Plus“ plane.

Ar webhook pateikiamas visas straipsnis?

Pateikiamas toks turinys, kokį skelbia sklaidos kanalas. Lauke content pateikiamas visas straipsnis, jei kanale jis yra, arba santrauka, jei kanale pateikiama tik santrauka.

Ar galiu patikrinti galutinį tašką prieš išsaugodamas taisyklę?

Taip. Pasirinkus Išbandykite pranešimą, į jūsų URL adresą išsiunčiamas vienas tikras įrašas iš jūsų kanalų. Paskyroje turi būti bent vienas kanalas su įrašais.

Išbandykite Feeder

Feeder yra RSS skaityklė, skirta internetui, „iOS“ ir „Android“, taip pat turi plėtinių, skirtų „Chrome“, „Firefox“ ir „Edge“. Nemokamame plane galima stebėti iki 200 kanalų be reklamų, o kanalai atnaujinami ne rečiau kaip kas 30 minučių. „Plus“ plane galima stebėti 2 500 kanalų, jie atnaujinami ne rečiau kaip kas 5 minutes, be to, teikiamos el. pašto suvestinės.

Pradėkite naudoti Feeder nemokamai

Skaitykite toliau

Vis dar reikia pagalbos?

Mūsų pagalbos komanda perskaito kiekvieną žinutę. Papasakok, kas nutiko, ir mes tau padėsime.

Susisiekite su palaikymu