Щоб надсилати дані з RSS на вебхук, потрібен сервіс або скрипт, який регулярно перевіряє стрічку, знаходить нові дописи й надсилає кожен із них на вашу URL-адресу HTTP-запитом POST. Правило Feeder «Надіслати на Webhook» робить це для будь-якої кількості стрічок, а також підтримує фільтри за ключовими словами й повторні спроби. Те саме можна налаштувати в сервісах автоматизації, як-от Zapier, Make, IFTTT і n8n, або за допомогою короткого скрипту на власному сервері.
Які є способи надсилати дані з RSS на вебхук?
| Спосіб | Для чого підходить | Що варто знати |
|---|---|---|
| Правило Feeder «Надіслати на Webhook» | Для багатьох стрічок, фільтрів за ключовими словами й єдиного формату JSON для кожної стрічки | Доступне у Feeder Professional. Докладніше про нього читайте нижче. |
| Zapier, Make, IFTTT або n8n | Щоб передавати кожен допис в інші застосунки без коду | Поля потрібно зіставити самостійно. У кожного сервісу свої плани й обмеження. |
| Скрипт | Для розробників, яким потрібен повний контроль | Ви розміщуєте його на сервері, налаштовуєте розклад і стежите за тим, що вже було надіслано. |
Як працює правило Feeder «Надіслати на Webhook»?
«Надіслати на Webhook» є однією з дій у правилах Feeder. Створіть правило, у списку Що має відбуватися? виберіть Надіслати на Webhook, вставте URL-адресу кінцевої точки й виберіть стрічки, папки або Усі стрічки, за якими потрібно стежити. За потреби додайте ключові слова, щоб надсилати лише певні дописи. Після цього Feeder надсилатиме на вказану URL-адресу кожен новий допис, що відповідає умовам.
У статті Створення власних інтеграцій за допомогою вебхуків наведено всі кроки зі знімками екрана, а в дописі про запуск показано, як працює правило. Інформація на цій сторінці взята з коду, який надсилає вебхуки.
Що Feeder надсилає на мій вебхук?
Один HTTP-запит POST для кожного допису, із тілом у форматі JSON і такими заголовками:
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>
Нижче наведено тіло запиту для допису з блогу Feeder, поле content скорочено. Feeder надсилає його в один рядок, тут його розбито на рядки для зручності читання.
{
"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"
}
}
| Поле | Що містить |
|---|---|
version | Версію формату: 2023-06-26. |
message_id | Унікальний ідентифікатор кожного повідомлення. Під час повторного надсилання того самого повідомлення він не змінюється, тож можна відкидати дублікати. |
post.id | Ідентифікатор допису у Feeder. |
post.title | Заголовок допису. |
post.url | Посилання на допис на сайті. |
post.published | Час публікації допису у форматі часової позначки RFC 3339 або значення null. |
post.content | Вміст допису у форматі HTML, як його надає стрічка: повна стаття або короткий виклад. |
post.audio_url | Посилання на MP3-файл, прикріплений до допису, наприклад епізод подкасту, або значення null. |
post.image_url | Посилання на зображення, прикріплене до допису, або на перше зображення в його вмісті, або значення null. |
feed.id | Короткий ідентифікатор стрічки у Feeder. |
feed.source_url | Адреса стрічки. |
feed.public_url | Сайт, якому належить стрічка. |
feed.title | Назва стрічки. |
feed.favicon | Адреса значка сайту. |
У полі content символи <, > і & передаються як \u003c, \u003e і \u0026. Це коректний JSON, а будь-який парсер JSON перетворить їх назад на HTML.
Коли спрацьовує вебхук?
- Лише для нових дописів. Правило обробляє дописи, які Feeder знаходить після його збереження. Уже наявні дописи не надсилаються.
- Окремий запит для кожного допису. Кожен допис, що відповідає умовам, надсилається окремим запитом. Feeder не об'єднує дописи. Якщо сайт згодом змінить допис і Feeder помітить цю зміну, оновлена версія також буде надіслана.
- Одразу після наступної перевірки стрічки. У Professional Feeder за замовчуванням перевіряє стрічки кожні 10 хвилин, але можна налаштувати оновлення стрічки щохвилини. Докладніше: Як часто Feeder перевіряє стрічки.
- Лише для дописів, що відповідають умовам. Якщо задано ключові слова, надсилаються лише дописи, які їм відповідають. Якщо ключових слів немає, надсилається кожен новий допис. Допис не надсилається, якщо його приховує правило Фільтрувати пости або Фільтрувати дублікати.
Що буде, якщо кінцева точка не працює?
Feeder очікує на відповідь до 60 секунд. Статус відповіді 2xx означає, що допис доставлено. Якщо кінцева точка повертає помилку, наприклад 404 або 500, або взагалі не відповідає, Feeder повторює спробу ще до 8 разів:
| Спроба | Затримка після попередньої спроби |
|---|---|
| 2 | 5 секунд |
| 3 | 30 секунд |
| 4 | 1 хвилина |
| 5 | 5 хвилин |
| 6 | 10 хвилин |
| 7 | 30 хвилин |
| 8 | 30 хвилин |
| 9 | 30 хвилин |
Після дев'ятої спроби, приблизно через 1 годину 47 хвилин після першої, Feeder припиняє повторні спроби для цього допису. Кожна невдала спроба відображається в журналі помилок правила: відкрийте правило й виберіть Відкрити журнал помилок. Якщо змінити URL-адресу правила, поки очікуються повторні спроби, наступні запити буде надіслано на нову адресу. Кнопка Надіслати тестове повідомлення надсилає одне тестове повідомлення без повторних спроб.
Що має робити моя кінцева точка?
- Відповідайте швидко. Спершу поверніть статус 2xx, а повільні операції виконайте пізніше, щоб гарантовано вкластися в 60 секунд.
- Відкидайте дублікати. Якщо сервер обробив повідомлення, але надіслав відповідь із запізненням, воно прийде повторно. Зберігайте вже отримані значення
message_idабоpost.id. - Використовуйте кінцеву адресу. URL-адреса має містити шлях, наприклад
https://example.com/hooks/rss, і вести на сервер у публічному інтернеті. Feeder не надсилає запити на адреси в локальній або приватній мережі. Також уникайте перенаправлень: після перенаправлення зі статусом 301, 302 або 303 запит надходить як GET без тіла JSON. - Перевіряйте підпис. Будь-хто, хто знає вашу URL-адресу, може надіслати на неї запит, тому довіряйте лише запитам із дійсним підписом
X-Feeder-Signature. У наступному розділі пояснено, як це зробити.
Як перевірити, що запит надійшов від Feeder?
Feeder підписує кожен запит секретним ключем вебхука вашого правила. Щоб знайти його, відкрийте правило, увімкніть Розширені, скопіюйте значення Секретний ключ вебхука й збережіть правило. Заголовок X-Feeder-Signature містить sha256=, а після нього йде HMAC-SHA256 тіла запиту в шістнадцятковому форматі, обчислений за допомогою цього ключа.
Щоб перевірити підпис, обчисліть такий самий HMAC для необробленого тіла запиту до розбору JSON і порівняйте їх за сталий час. Приклад для Python:
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 "")
Тут body є тілом запиту у вигляді байтів. Відхиляйте запит, якщо from_feeder повертає False. Повторні спроби підписуються поточним секретним ключем правила, тож зміна ключа поширюється і на них.
Чи може Feeder надсилати на вебхук дайджест?
Ні. Правило «Надіслати на Webhook» надсилає окремий запит для кожного допису, щойно Feeder його знаходить. Щоб отримувати дайджест, є три варіанти:
- Збирайте дописи у себе. Зберігайте кожен допис, отриманий кінцевою точкою, а потім надсилайте власний підсумок за розкладом.
- Скористайтеся зведеннями електронною поштою. У планах Plus і Professional Feeder може надсилати щоденне, щотижневе або щомісячне зведення вибраних стрічок. Докладніше: Сповіщення про нові дописи.
- Опублікуйте стрічку. У Professional можна опублікувати папку або добірку як RSS- чи JSON-стрічку, а потім налаштувати власний інструмент на її перевірку за розкладом. Докладніше: Як експортувати дописи у вигляді RSS- і JSON-стрічок.
Як надсилати дані з RSS на вебхук за допомогою Zapier, Make, IFTTT або n8n?
У кожному з цих сервісів можна поєднати тригер RSS із дією HTTP. Ми перевірили назви на офіційних сайтах сервісів 28 вересня 2026 року:
| Сервіс | Тригер | Дія | Що варто знати |
|---|---|---|---|
| Zapier | RSS by Zapier: Новий елемент у стрічці або Нові елементи в кількох стрічках | Webhooks by Zapier: POST | Webhooks by Zapier є преміумзастосунком, доступним лише в певних планах Zapier. |
| Make | RSS: Стежити за елементами RSS-стрічки | HTTP: Надіслати запит | Модуль RSS обробляє RSS- і Atom-стрічки. |
| IFTTT | RSS Feed: Новий елемент стрічки | Webhooks: Виконати вебзапит | IFTTT перевіряє стрічки щогодини в одному варіанті сервісу, а в Pro і Pro+ кожні 5 хвилин. |
| n8n | Вузол Тригер RSS-стрічки | Вузол HTTP Request із методом POST | Частоту перевірки стрічки можна вибрати в розділі Час опитування. |
Це найшвидший спосіб, якщо ви вже користуєтеся одним із цих сервісів. Їх також можна поєднати з Feeder: укажіть як кінцеву точку правила «Надіслати на Webhook» тригер Catch Hook у Zapier або вузол Webhook у n8n. Тоді Feeder стежитиме за стрічками й фільтруватиме дописи, а далі їх оброблятиме ваш робочий процес.
Як надсилати дані з RSS на вебхук за допомогою скрипту?
Цей скрипт Python надсилає кожен новий елемент однієї стрічки на ваш вебхук. Він зберігає інформацію про вже надіслані елементи у файлі seen.txt, тому кожен елемент надсилається лише один раз. Під час першого запуску будуть надіслані всі елементи, які на той момент є у стрічці.
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))
Потрібні Python 3 і пакет feedparser (pip install feedparser). Запускайте скрипт за розкладом, наприклад кожні 15 хвилин за допомогою cron: */15 * * * * cd /path/to/folder && python3 rss_to_webhook.py. Якщо кінцева точка повертає помилку, скрипт зупиняється, а під час наступного запуску знову спробує надіслати той самий елемент.
Поширені запитання
Чи можна через правило «Надіслати на Webhook» надсилати дописи на вебхуки Slack, Teams або Discord?
Не напряму. Feeder надсилає дані у власному форматі JSON, а не у форматі повідомлень, потрібному цим застосункам. Замість цього скористайтеся правилами Feeder Надіслати до Slack, Пост у Microsoft Teams або Опублікувати в Discord чи передайте дані через Zapier, Make або n8n.
У якому плані Feeder доступні вебхуки?
Правило «Надіслати на Webhook» входить до Professional. Правила для фільтрування, позначення зірочкою або збирання дописів доступні також у Plus.
Чи містить вебхук повний текст статті?
Він містить те, що публікує стрічка. У полі content буде повний текст, якщо стрічка його надає, або короткий виклад, якщо у стрічці є лише він.
Чи можна перевірити кінцеву точку, перш ніж зберігати правило?
Так. Кнопка Надіслати тестове повідомлення надсилає на вашу URL-адресу один справжній допис із ваших стрічок. У вашому обліковому записі має бути принаймні одна стрічка з дописами.
Спробуйте Feeder
Feeder є RSS-рідером для вебу, iOS і Android із розширеннями для Chrome, Firefox та Edge. Безкоштовний план підтримує до 200 стрічок без реклами, а оновлення відбувається не рідше ніж раз на 30 хвилин. Plus дає змогу стежити за 2 500 стрічками, оновлювати їх не рідше ніж раз на 5 хвилин і отримувати зведення електронною поштою.
Почніть користуватися Feeder безкоштовно