دليل البدء السريع
شغّل SocialHook في 5 دقائق. اربط أول حساب منصة Meta وابدأ استقبال webhooks بعدة أسطر من الكود.
أنشئ حساب SocialHook الخاص بك
سجّل في socialhook.io — لا تحتاج بطاقة ائتمان
بعد التسجيل، ستصل إلى لوحة التحكم. من هنا يمكنك ربط حسابات Meta وضبط رابط webhook وعرض سجلات التسليم. يتضمن حسابك مفتاحًا سريًا لتوقيع جميع payloads الـ webhook.
اربط حساب منصة Meta
سجّل الدخول بـ OAuth إلى Facebook أو Instagram أو WhatsApp
انقر على ربط بجانب المنصة التي تريد استخدامها. ستُعاد توجيهك إلى تدفق OAuth الخاص بـ Meta. لا يخزّن SocialHook كلمة مرور Meta أبدًا.
اضبط رابط webhook الخاص بك
الصق نقطة النهاية وأنشئ مفتاحًا سريًا
في لوحة التحكم، اذهب إلى إعدادات Webhook والصق رابط POST لخادمك. أنشئ مفتاحًا سريًا — ستستخدمه للتحقق من توقيعات الـ payload.
للتطوير المحلي، استخدم ngrok لكشف localhost الخاص بك:
npx ngrok http 3000
اضبط التحقق من التوقيع
تحقق من كل payload قبل المعالجة
كل تسليم يتضمن رأس X-SocialHook-Signature. تحقق منه قبل معالجة أي payload:
const crypto = require('crypto')
function verifySignature(rawBody, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex')
return signature === expected
}
app.post('/webhook', express.raw({ type: '*/*' }), (req, res) => {
const sig = req.headers['x-socialhook-signature']
if (!verifySignature(req.body, sig, process.env.SOCIALHOOK_SECRET)) {
return res.status(401).send('Unauthorized')
}
const payload = JSON.parse(req.body)
// ... handle payload
res.sendStatus(200)
})عالج الأحداث الواردة
حلّل payloads الـ webhook وتصرف بناءً عليها
بعد التحقق، حلّل JSON payload ووجّه بناءً على حقل event:
const { platform, event, message, from } = payload
switch (event) {
case 'message.received':
console.log(`[${platform}] Message from ${from}: ${message.body}`)
// Route to AI, CRM, n8n, etc.
await handleInboundMessage(payload)
break
case 'conversation.started':
// New conversation — create a CRM lead, send welcome message
await createLead({ platform, from, timestamp: payload.timestamp })
break
default:
console.log('Unhandled event:', event)
}
res.sendStatus(200) // Always respond 200أنت جاهز 🎉
أرسل رسالة اختبار إلى رقم WhatsApp أو صفحة Facebook أو حساب Instagram المتصل. يجب أن ترى تسليمًا يظهر في سجلات لوحة تحكم SocialHook وPOST يصل إلى خادمك خلال 50ms.