Webhook (Zapier وMake وn8n ومخصص)
استقبل كل مقال مكتمل عبر webhook JSON موقّع — الحمولة الدقيقة والترويسات والتحقق من التوقيع ودليل Zapier.
لأي موقع لا يملك تكاملًا أصليًا، يسلّم Climb AI كل مقال مكتمل عبر طلب HTTPS POST واحد موقّع إلى URL تتحكم به — بصيغة HTML وMarkdown وحقول نصية عادية، بحيث يأخذ كل من Zapier zap أو سيناريو Make أو سير عمل n8n أو المسار الخاص بك ما يحتاجه.
- 1أنشئ نقطة نهايةمشغّل Zapier "Catch Hook"، أو مشغّل webhook في Make/n8n، أو مسار على موقعك — HTTPS عام فقط؛ يرفض Climb AI عناوين
http://والمضيفات الداخلية/الخاصة. - 2أضفه في Climb AIفي إعداد الموقع، اختر Webhook والصق الـ URL. اترك الحقل السري فارغًا ليُولَّد تلقائيًا (يُعرض مرة واحدة ويبدأ بـ
whsec_)، أو الصق سرًا خاصًا بك. - 3تحقق عبر pingيرسل Climb AI حدث
pingموقّعًا ويطلب استجابة 2xx قبل حفظ الاتصال.
ما الذي يُرسَل
| الترويسة | القيمة |
|---|---|
| Content-Type | application/json |
| X-ClimbAI-Event | article.published (أو ping لاختبار التحقق) |
| X-ClimbAI-Delivery | معرّف ثابت لكل مقال — art_<articleId> — حتى تُزيل تكرار المحاولات |
| X-ClimbAI-Signature | t=<unix timestamp>,v1=<HMAC-SHA256 hex digest> |
{
"id": "art_66f1c2...",
"event": "article.published",
"createdAt": "2026-09-13T10:15:00.000Z",
"data": {
"id": "66f1c2...",
"title": "How to Choose a Climbing Harness",
"slug": "how-to-choose-a-climbing-harness",
"html": "<h1>...</h1><p>...</p>",
"markdown": "# How to Choose a Climbing Harness\n\n...",
"excerpt": "A quick guide to fit, weight and gear loops.",
"seo": { "metaTitle": "...", "metaDescription": "...", "focusKeyword": "climbing harness" },
"featuredImageUrl": "https://.../featured.webp",
"ogImageUrl": "https://.../og.webp",
"scheduledFor": null,
"website": { "id": "...", "url": "https://example.com", "name": "Example Co" }
}
}function verify(secret, rawBody, header) {
const { t, v1 } = Object.fromEntries(header.split(',').map(kv => kv.split('=')));
if (Math.abs(Date.now() / 1000 - t) > 300) return false; // 5-min tolerance
const expected = require('crypto').createHmac('sha256', secret).update(`${t}.${rawBody}`).digest('hex');
const a = Buffer.from(expected, 'hex'), b = Buffer.from(v1, 'hex');
return a.length === b.length && require('crypto').timingSafeEqual(a, b);
}ما الذي يجب إرجاعه
أعِد حالة 2xx خلال 15 ثانية. اختياريًا، رد بـ { "url": "https://yoursite.com/the-post" } إذا كنت تعرف الـ URL المباشر — يسجّله Climb AI كعنوان URL المنشور للمقال؛ أي جسم 2xx آخر مقبول، لكنه لن يعرف الـ URL.
دليل استخدام Zapier Catch Hook
- 1أنشئ Zapاختر Webhooks by Zapier كمشغّل، والحدث Catch Hook.
- 2انسخ الـ URLالصق عنوان webhook الذي يولّده Zapier في إعداد تكامل Webhook في Climb AI.
- 3اختبر وابنِأطلق إرسالًا تجريبيًا من Climb AI؛ يلتقط Zapier الـ JSON كبيانات نموذجية يمكنك ربطها ببقية الـ Zap باستخدام
data.htmlأوdata.markdownأو حقول SEO.
الأسئلة الشائعة
للمقالات فقط على موقع متصل عبر Webhook، وفي تاريخ نشرها المجدول — في اللحظة نفسها التي كان تكامل أصلي سينشر فيها.
- تصدير المقالات (HTML، Markdown، JSON) — نزّل أي مقال بصيغة HTML أو Markdown أو JSON مباشرةً من المحرر — وJSON هو الكائن نفسه الذي يستقبله الـ webhook.
- وصّل موقعك — ما الذي تطلبه كل خطوة من خطوات الإعداد الأولي، وما الذي يُعبَّأ تلقائياً، وأين تختار منصة النشر.
- الإشعارات — أي الأحداث تُشعرك داخل التطبيق أو بالبريد الإلكتروني، وكيفية تشغيل كل فئة أو إيقافها.
تجربة مجانية 5 أيام، لا يُخصم شيء حتى اليوم 6، واسترداد المال خلال 30 يومًا بعد ذلك.
تجربة مجانية لمدة 5 أيام · ضمان استرداد المال خلال 30 يومًا · السعر مثبّت مدى الحياة
ما زلت متعثرًا؟ hello@climbai.io