ClimbAI
التكاملات

Webhook (Zapier وMake وn8n ومخصص)

استقبل كل مقال مكتمل عبر webhook JSON موقّع — الحمولة الدقيقة والترويسات والتحقق من التوقيع ودليل Zapier.

آخر تحديث 2026-09-13

لأي موقع لا يملك تكاملًا أصليًا، يسلّم Climb AI كل مقال مكتمل عبر طلب HTTPS POST واحد موقّع إلى URL تتحكم به — بصيغة HTML وMarkdown وحقول نصية عادية، بحيث يأخذ كل من Zapier zap أو سيناريو Make أو سير عمل n8n أو المسار الخاص بك ما يحتاجه.

  1. 1
    أنشئ نقطة نهاية
    مشغّل Zapier "Catch Hook"، أو مشغّل webhook في Make/n8n، أو مسار على موقعك — HTTPS عام فقط؛ يرفض Climb AI عناوين http:// والمضيفات الداخلية/الخاصة.
  2. 2
    أضفه في Climb AI
    في إعداد الموقع، اختر Webhook والصق الـ URL. اترك الحقل السري فارغًا ليُولَّد تلقائيًا (يُعرض مرة واحدة ويبدأ بـ whsec_)، أو الصق سرًا خاصًا بك.
  3. 3
    تحقق عبر ping
    يرسل Climb AI حدث ping موقّعًا ويطلب استجابة 2xx قبل حفظ الاتصال.

ما الذي يُرسَل

الترويسةالقيمة
Content-Typeapplication/json
X-ClimbAI-Eventarticle.published (أو ping لاختبار التحقق)
X-ClimbAI-Deliveryمعرّف ثابت لكل مقال — art_<articleId> — حتى تُزيل تكرار المحاولات
X-ClimbAI-Signaturet=<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" }
  }
}
جسم article.published
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);
}
التحقق في Node.js (المخطط نفسه الذي تستخدمه Stripe)
تحقق مقابل جسم الطلب الخام، قبل أن تعيد أي عملية تحليل JSON تسلسله — فإعادة التحويل إلى نص تغيّر المسافات وتُفسد فحص التوقيع.

ما الذي يجب إرجاعه

أعِد حالة 2xx خلال 15 ثانية. اختياريًا، رد بـ { "url": "https://yoursite.com/the-post" } إذا كنت تعرف الـ URL المباشر — يسجّله Climb AI كعنوان URL المنشور للمقال؛ أي جسم 2xx آخر مقبول، لكنه لن يعرف الـ URL.

تُعتبر إعادة التوجيه فشلًا (ولا تُتبَع). تُعاد محاولة التسليم الفاشل حتى 3 مرات بتراجع أُسّي يبدأ من 5 ثوانٍ؛ وإذا فشلت كل المحاولات، يُوسم المقال بـ "Publishing Failed" مع عرض السبب في الواجهة.

دليل استخدام Zapier Catch Hook

  1. 1
    أنشئ Zap
    اختر Webhooks by Zapier كمشغّل، والحدث Catch Hook.
  2. 2
    انسخ الـ URL
    الصق عنوان webhook الذي يولّده Zapier في إعداد تكامل Webhook في Climb AI.
  3. 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

جرّبه الآن مقابل $0.00