لإرسال موجز RSS إلى Webhook، تحتاج إلى أداة تتحقق من الموجز وفق جدول زمني، وتكتشف العناصر الجديدة، ثم ترسل كل عنصر إلى رابطك عبر طلب HTTP من نوع POST. تنفّذ قاعدة «النشر إلى Webhook» في Feeder ذلك لأي عدد من الموجزات، مع إمكانية التصفية بالكلمات المفتاحية وإعادة المحاولة تلقائيًا. ويمكنك أيضًا استخدام أدوات الأتمتة مثل Zapier وMake وIFTTT وn8n، أو تشغيل سكربت قصير على خادمك.
ما الخيارات المتاحة لإرسال موجز RSS إلى Webhook؟
| الخيار | مناسب لـ | ما ينبغي معرفته |
|---|---|---|
| قاعدة «النشر إلى Webhook» في Feeder | متابعة موجزات متعددة، والتصفية بالكلمات المفتاحية، واستخدام تنسيق JSON موحّد لكل الموجزات | متاحة ضمن Professional من Feeder. التفاصيل أدناه. |
| Zapier أو Make أو IFTTT أو n8n | تمرير كل عنصر إلى تطبيقات أخرى من دون كتابة تعليمات برمجية | تحدّد الحقول بنفسك. لكل أداة خططها وحدودها الخاصة. |
| سكربت | للمطورين الذين يريدون تحكمًا كاملًا | تستضيفه وتجدوله، وتتتبّع العناصر التي سبق إرسالها. |
كيف تعمل قاعدة «النشر إلى Webhook» في Feeder؟
«النشر إلى Webhook» أحد الإجراءات المتاحة في «القواعد» في Feeder. أنشئ قاعدة، واختر النشر إلى Webhook ضمن ما الذي يجب أن يحدث؟، ثم ألصق رابط نقطة النهاية، واختر الموجزات أو المجلدات التي تريد متابعتها، أو جميع الموجزات. أضف كلمات مفتاحية إذا أردت إرسال منشورات محددة فقط. بعد ذلك، يرسل Feeder كل منشور جديد يطابق الشروط إلى رابطك.
تجد في إنشاء عمليات تكامل خاصة بك باستخدام Webhooks جميع الخطوات مع لقطات شاشة، كما يوضّح منشور الإطلاق القاعدة أثناء عملها. تستند المعلومات في هذه الصفحة إلى الشيفرة التي ترسل طلبات Webhook.
ما البيانات التي يرسلها Feeder إلى Webhook؟
يرسل 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.
متى يُرسل Webhook؟
- للمنشورات الجديدة فقط. تعمل القاعدة على المنشورات التي يعثر عليها Feeder بعد حفظ القاعدة. ولا ترسل المنشورات الموجودة لديك مسبقًا.
- مرة واحدة لكل منشور. يُرسل كل منشور يطابق الشروط في طلب منفصل، ولا يجمع Feeder المنشورات معًا. وإذا عدّل الموقع منشورًا لاحقًا ورصد Feeder التعديل، فستُرسل النسخة المعدّلة أيضًا.
- بعد الفحص التالي للموجز مباشرةً. في Professional، يفحص Feeder الموجزات كل 10 دقائق افتراضيًا، ويمكنك ضبط تحديث الموجز ليتم كل دقيقة. راجع كم مرة يفحص Feeder موجزاتك.
- للمنشورات المطابقة فقط. عند إضافة كلمات مفتاحية، لا تُرسل إلا المنشورات المطابقة. ومن دون كلمات مفتاحية، يُرسل كل منشور جديد. ولا يُرسل المنشور الذي تخفيه قاعدة تصفية المنشورات أو تصفية المكررات.
ماذا يحدث إذا تعذّر الوصول إلى نقطة النهاية؟
ينتظر Feeder الرد مدة تصل إلى 60 ثانية. ويُعدّ رمز الحالة 2xx تأكيدًا على التسليم. إذا ردّت نقطة النهاية بخطأ، مثل 404 أو 500، أو لم ترد إطلاقًا، فسيعيد Feeder المحاولة حتى 8 مرات إضافية:
| المحاولة | الفاصل الزمني منذ المحاولة السابقة |
|---|---|
| 2 | 5 ثوانٍ |
| 3 | 30 ثانية |
| 4 | دقيقة واحدة |
| 5 | 5 دقائق |
| 6 | 10 دقائق |
| 7 | 30 دقيقة |
| 8 | 30 دقيقة |
| 9 | 30 دقيقة |
بعد المحاولة التاسعة، أي بعد نحو ساعة و47 دقيقة من المحاولة الأولى، يتوقف Feeder عن محاولة إرسال ذلك المنشور. يظهر كل فشل في سجل أخطاء القاعدة. افتح القاعدة واختر فتح سجل الأخطاء. إذا غيّرت رابط القاعدة أثناء انتظار إعادة المحاولة، فستُرسل المحاولات التالية إلى الرابط الجديد. يرسل نشر رسالة تجريبية رسالة اختبار واحدة من دون إعادة المحاولة.
ما الذي ينبغي أن تفعله نقطة النهاية؟
- استجب بسرعة. أعد أولًا رمز حالة 2xx، ثم نفّذ المهام البطيئة بعد ذلك، حتى لا تقترب من مهلة الانتظار البالغة 60 ثانية.
- تجاهل المكررات. إذا عالج خادمك رسالة لكنه تأخر في الرد، فستصل الرسالة مرة أخرى عند إعادة المحاولة. احتفظ بقيم
message_idأوpost.idالتي سبق أن تعاملت معها. - استخدم العنوان النهائي. يجب أن يتضمن الرابط مسارًا، مثل
https://example.com/hooks/rss، وأن يشير إلى خادم على الإنترنت العام. لا يرسل Feeder الطلبات إلى عناوين الشبكات المحلية أو الخاصة. وتجنّب عمليات إعادة التوجيه أيضًا، فبعد إعادة توجيه 301 أو 302 أو 303 يصل الطلب بصيغة GET ومن دون محتوى JSON. - تحقّق من التوقيع. يمكن لأي شخص يعرف رابطك إرسال طلب إليه، لذا لا تثق إلا بالطلبات التي تحمل قيمة صالحة في
X-Feeder-Signature. يوضّح القسم التالي طريقة التحقق.
كيف أتحقق من أن الطلب صادر من Feeder؟
يوقّع Feeder كل طلب باستخدام سر Webhook الخاص بالقاعدة. للعثور عليه، افتح القاعدة، وفعّل متقدم، وانسخ سر Webhook، ثم احفظ القاعدة. يحتوي رأس 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؟
لا. ترسل قاعدة «النشر إلى Webhook» طلبًا واحدًا لكل منشور بمجرد أن يعثر عليه Feeder. لإرسال ملخص، لديك ثلاثة خيارات:
- اجمع المنشورات من جهتك. خزّن كل منشور تستلمه نقطة النهاية، ثم أرسل ملخصك وفق جدول زمني.
- استخدم ملخصات البريد الإلكتروني. يستطيع Feeder إرسال ملخص يومي أو أسبوعي أو شهري عبر البريد الإلكتروني للموجزات التي تختارها، ضمن خطتي Plus وProfessional. راجع تلقي إشعارات بالمنشورات الجديدة.
- انشر موجزًا. في Professional، انشر مجلدًا أو مجموعة كموجز RSS أو JSON، ودع أداتك تقرأه وفق جدولها الزمني. راجع كيفية تصدير منشوراتك كموجزات RSS وJSON.
كيف أرسل موجز RSS إلى Webhook باستخدام 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 الموجزات كل ساعة في خطته المجانية، وكل 5 دقائق في خطتي Pro وPro+. |
| n8n | عقدة مُشغّل موجز RSS | عقدة طلب HTTP باستخدام طريقة POST | يمكنك اختيار وتيرة فحص الموجز ضمن أوقات الفحص الدوري. |
هذه الأدوات هي أسرع طريقة إذا كنت تستخدم إحداها بالفعل. ويمكنك أيضًا ربطها بـ Feeder: وجّه قاعدة «النشر إلى Webhook» إلى مُشغّل استقبال Hook في Zapier أو عقدة Webhook في n8n. عندها يتولى Feeder متابعة الموجزات وتصفية المنشورات، ويكمل سير العمل بقية المهمة.
كيف أرسل موجز RSS إلى Webhook باستخدام سكربت؟
يرسل سكربت Python التالي كل عنصر جديد في موجز واحد إلى Webhook. ويتذكر ما أرسله في الملف 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. إذا ردّت نقطة النهاية بخطأ، يتوقف السكربت، ويحاول إرسال العنصر نفسه مجددًا في التشغيل التالي.
أسئلة شائعة
هل يمكنني إرسال موجز RSS إلى Webhook في Slack أو Teams أو Discord باستخدام «النشر إلى Webhook»؟
ليس مباشرةً. يرسل Feeder تنسيق JSON الخاص به، وليس تنسيق الرسالة الذي تتطلبه هذه التطبيقات. استخدم قواعد Feeder: النشر إلى Slack أو النشر إلى Microsoft Teams أو النشر في Discord، أو استخدم Zapier أو Make أو n8n كحلقة وصل.
أي خطة من Feeder تتضمن Webhooks؟
تتوفر قاعدة «النشر إلى Webhook» ضمن Professional. وتعمل أيضًا القواعد التي تصفّي المنشورات أو تضع عليها نجمة أو تجمعها ضمن Plus.
هل يتضمن Webhook المقالة كاملة؟
يتضمن المحتوى الذي ينشره الموجز. يحتوي content على المقالة كاملة إذا كان الموجز يوفّرها، وعلى الملخص إذا كان الموجز لا يتضمن سوى ملخص.
هل يمكنني اختبار نقطة النهاية قبل حفظ القاعدة؟
نعم. يرسل نشر رسالة تجريبية منشورًا حقيقيًا واحدًا من موجزاتك إلى رابطك. ويجب أن يحتوي حسابك على موجز واحد على الأقل يتضمن منشورات.
جرّب Feeder
Feeder قارئ RSS للويب وiOS وAndroid، مع إضافات لمتصفحات Chrome وFirefox وEdge. تتيح الخطة المجانية متابعة ما يصل إلى 200 موجز بلا إعلانات، مع تحديث الموجزات كل 30 دقيقة كحد أقصى من حيث التكرار. وتتيح Plus متابعة 2,500 موجز، وتحديثها كل 5 دقائق، كما تضيف ملخصات البريد الإلكتروني.