كيفية ربط إشعارات واتساب بقنوات سلاك بدون خدمات خارجية

لدمج إشعارات واتساب مع قنوات سلاك أن يُحسّن بشكل كبير من تواصل الفريق، وذلك من خلال تمكين التحديثات الفورية من واتساب مباشرةً في مساحة عمل سلاك. في حين أن خدمات خارجية مثل Zapier وOnlizer وChatArchitect تُوفر تكاملاً سلساً، إلا أن بعض الشركات تُفضّل تجنّب الاعتماد على مصادر خارجية لأسبابٍ مثل خصوصية البيانات، أو التكلفة، أو الحاجة إلى التخصيص. يُقدّم هذا الدليل شرحاً مُفصّلاً واحترافياً لإعداد إشعارات أحداث واتساب في قنوات سلاك دون الحاجة إلى خدمات خارجية، وذلك بالاستفادة من واجهة برمجة تطبيقات واتساب للأعمال وواجهة برمجة تطبيقات سلاك. ينصبّ التركيز على تحقيق تكامل آمن وقابل للتطوير والتخصيص، مُصمّم خصيصاً لتلبية احتياجات عملك.

لماذا يتم دمج واتساب مع سلاك؟

قبل الخوض في الإعدادات التقنية، دعونا نستكشف سبب أهمية هذا التكامل:

  • التواصل المركزي : قم بتجميع استفسارات العملاء، وتحديثات الفريق، أو التنبيهات الهامة من واتساب في قناة واحدة على سلاك لتحسين التعاون.
  • الإشعارات في الوقت الفعلي : تلقي رسائل واتساب أو إشعارات الأحداث (مثل الرسائل الجديدة وتحديثات الحالة) في سلاك على الفور، مما يقلل من أوقات الاستجابة.
  • عدم الاعتماد على جهات خارجية : تجنب التكاليف المتكررة، ومخاوف خصوصية البيانات، أو القيود التي تفرضها المنصات الخارجية.
  • إمكانية التخصيص : قم ببناء حل مصمم خصيصًا لسير العمل الخاص بك، مثل تصفية الرسائل ذات الأولوية العالية أو توجيهها إلى قنوات محددة.

يفترض هذا الدليل أن لديك صلاحيات إدارية لحساب WhatsApp Business API، ومساحة عمل Slack، ومعرفة أساسية بالبرمجة (مثل Node.js أو Python). يستخدم الحل Webhooks وواجهات برمجة التطبيقات وخادمًا خفيفًا لإدارة التكامل.

المتطلبات الأساسية

لإعداد إشعارات واتساب في سلاك بدون خدمات خارجية، ستحتاج إلى:

  1. حساب واجهة برمجة تطبيقات واتساب للأعمال:
    • حساب واتساب للأعمال مسجل مع إمكانية الوصول إلى واجهة برمجة التطبيقات (API).
    • رقم هاتف تجاري موثق.
    • بيانات اعتماد واجهة برمجة التطبيقات (مفتاح واجهة برمجة التطبيقات، ومعرف رقم الهاتف، ورمز الوصول).
  2. مساحة عمل سلاك:
    • صلاحيات إدارية أو صلاحيات المالك لإنشاء تطبيقات Slack وإدارتها.
    • قناة مخصصة على تطبيق سلاك للإشعارات.
  3. بيئة التطوير:
    • خادم أو منصة سحابية (مثل AWS أو Heroku أو خادم Node.js/Python محلي) لاستضافة منطق التكامل.
    • الإلمام بواجهات برمجة تطبيقات REST، وخطافات الويب، وأساسيات البرمجة النصية من جانب الخادم.
  4. أدوات:
    • Node.js أو Python لكتابة البرامج النصية.
    • Ngrok (للاختبار المحلي لروابط الويب).
    • cURL أو Postman لاختبار واجهة برمجة التطبيقات (API).

دليل التكامل خطوة بخطوة

الخطوة 1: إعداد رابط الويب الخاص بواجهة برمجة تطبيقات واتساب للأعمال

تستخدم واجهة برمجة تطبيقات واتساب للأعمال تقنية Webhooks لإعلام خادمك بالرسائل أو الأحداث الواردة. ستحتاج إلى إعداد نقطة نهاية Webhook لاستقبال هذه الأحداث.

  1. إنشاء نقطة نهاية Webhook:

قم بإعداد خادم بسيط باستخدام Node.js أو Python. على سبيل المثال، استخدم Express.js (Node.js) لإنشاء نقطة نهاية:

const express = require ( 'express' ); const app = express(); app.use(express.json());
 app.post( '/webhook' , ( req, res ) => {   console.log ( 'تم استلام إشعار ويب واتساب:' , req.body); res.status( 200 ).send( 'تم استلام إشعار الويب' ); });
 app.listen( 3000 , () =>  console.log ( 'الخادم يعمل على المنفذ 3000' ));

  • قم بنشر هذا الخادم على عنوان URL عام (على سبيل المثال باستخدام Heroku) أو استخدم Ngrok للاختبار المحلي لعرض جهازك المحلي على الإنترنت.

  1. إعداد رابط واتساب:


    • قم بتسجيل الدخول إلى بوابة Meta للمطورين (أو لوحة تحكم موفر واجهة برمجة تطبيقات WhatsApp Business الخاصة بك).
    • انتقل إلى إعدادات واجهة برمجة تطبيقات واتساب للأعمال.
    • أضف عنوان URL الخاص بـ webhook (على سبيل المثال، https://your-server.com/webhook).
    • قم بضبط webhook للاستماع إلى أحداث مثل الرسائل (للرسائل الواردة) أو الحالات (لتحديثات تسليم الرسائل).

تحقق من صحة webhook عن طريق تنفيذ نقطة نهاية التحقق (يتطلب Meta نقطة نهاية GET لتأكيد عنوان URL الخاص بـ webhook).


app.get( '/webhook' , ( req, res ) => {   const verifyToken = 'YOUR_VERIFY_TOKEN' ;   if (req.query[ 'hub.mode' ] === 'subscribe' && req.query[ 'hub.verify_token' ] === verifyToken) { res.status( 200 ).send(req.query[ 'hub.challenge' ]); } else { res.status( 403 ).send( 'فشل التحقق' ); } });


  1. اختبر Webhook:

أرسل رسالة اختبارية إلى رقم واتساب للأعمال الخاص بك، وتأكد من أن خادمك يستقبل البيانات. ستكون البيانات على النحو التالي:


{   "object" : "whatsapp_business_account" ,   "entry" : [{     "changes" : [{       "value" : {         "messages" : [{           "from" : "1234567890" ,           "text" : { "body" : "مرحباً، هذه رسالة تجريبية!" } }] } }] }] }

الخطوة الثانية: إنشاء تطبيق Slack لنشر الإشعارات

لإرسال أحداث واتساب إلى قناة سلاك، ستحتاج إلى تطبيق سلاك لديه أذونات لنشر الرسائل.

  1. أنشئ تطبيق سلاك:


    • انتقل إلى api.slack.com/apps وانقر على "إنشاء تطبيق جديد".
    • قم بتسمية تطبيقك (على سبيل المثال، "WhatsAppNotifier") وحدد مساحة عمل Slack الخاصة بك.
    • ضمن قسم "الأذونات"، أضف نطاق chat:write للسماح للتطبيق بنشر الرسائل.
  2. احصل على رمز البوت:


    • في إعدادات تطبيق Slack، انتقل إلى "OAuth والأذونات"
    • قم بتثبيت التطبيق في مساحة العمل الخاصة بك وانسخ "رمز OAuth الخاص بمستخدم البوت" (يبدأ بـ xoxb-).
  3. نشر تجريبي على سلاك:

استخدم نقطة نهاية chat.postMessage في واجهة برمجة تطبيقات Slack لاختبار نشر رسالة. على سبيل المثال، في Node.js باستخدام حزمة @slack/web-api:


const { WebClient } = require ( '@slack/web-api' ); const slack = new WebClient( 'YOUR_SLACK_BOT_TOKEN' );
 async  function  postToSlack ( channel, message ) {   await slack.chat.postMessage({     channel : channel,     text : message }); }
 postToSlack( '#whatsapp-notifications' , 'رسالة تجريبية من واتساب!' );

  • تأكد من دعوة البوت إلى قناة Slack المستهدفة (على سبيل المثال، /invite @WhatsAppNotifier).

الخطوة 3: ربط روابط واتساب ويب هوكس بسلاك

الآن، قم بدمج رابط واتساب مع واجهة برمجة تطبيقات سلاك لإعادة توجيه الإشعارات.

  1. تحليل حمولة واتساب ويب هوك:

قم بتعديل نقطة نهاية webhook الخاصة بك لاستخراج المعلومات ذات الصلة (مثل رقم هاتف المرسل، نص الرسالة):

 

app.post( '/webhook' , async (req, res) => {   const payload = req.body;   if (payload.object === 'whatsapp_business_account' ) {     const messages = payload.entry[ 0 ].changes[ 0 ].value.messages;     if (messages && messages.length > 0 ) {       const message = messages[ 0 ];       const sender = message.from;       const text = message.text?.body || 'تم استلام رسالة غير نصية' ;       const slackMessage = `رسالة واتساب جديدة من ${sender} : ${text} ` ;       await postToSlack( '#whatsapp-notifications' , slackMessage); } } res.status( 200 ).send( 'تم استلام Webhook' ); });

  1. التعامل مع الرسائل الإعلامية:

إذا كانت رسالة واتساب تحتوي على وسائط (مثل الصور أو مقاطع الفيديو)، فاسترجع عنوان URL للوسائط باستخدام واجهة برمجة تطبيقات واتساب وقم بتحميلها إلى سلاك:


const axios = require ( 'axios' );
 async  function  handleMediaMessage ( message, slackChannel ) {   const mediaId = message.image?.id || message.video?.id;   if (mediaId) {     const mediaUrl = await getMediaUrl(mediaId);     const mediaResponse = await axios.get(mediaUrl, {       headers : { Authorization : `Bearer YOUR_WHATSAPP_ACCESS_TOKEN` },       responseType : 'stream'
 });     await slack.files.upload({       channels : slackChannel,       file : mediaResponse.data,       filename : `whatsapp_media _${mediaId} `
 }); } }
 async  function  getMediaUrl ( mediaId ) {   const response = await axios.get( `https://graph.facebook.com/v17.0/ ${mediaId} ` , {     headers : { Authorization : `Bearer YOUR_WHATSAPP_ACCESS_TOKEN` } });   return response.data.url; }

  1. النشر والاختبار:


    • انشر خادمك على منصة سحابية (مثل AWS EC2 أو Heroku).
    • أرسل رسائل اختبارية إلى رقم واتساب للأعمال الخاص بك وتأكد من ظهورها في قناة سلاك المخصصة.

الخطوة الرابعة: تعزيز التكامل

لجعل التكامل أكثر قوة، ضع في اعتبارك هذه الميزات المتقدمة:

  • تصفية الرسائل : أضف منطقًا لتصفية الرسائل بناءً على الكلمات المفتاحية أو المرسل أو الأولوية. على سبيل المثال، قم بإعادة توجيه الرسائل التي تحتوي على كلمة "عاجل" فقط إلى قناة Slack محددة.
  • التواصل ثنائي الاتجاه : السماح لمستخدمي Slack بالرد على رسائل WhatsApp عن طريق إرسال الرسائل إلى روبوت Slack، الذي يقوم بدوره بإعادة توجيهها عبر واجهة برمجة تطبيقات WhatsApp.
  • معالجة الأخطاء : تنفيذ آليات إعادة المحاولة لمكالمات واجهة برمجة التطبيقات الفاشلة وتسجيل الأخطاء في قناة Slack مخصصة.
  • الأمان : قم بتأمين نقطة نهاية webhook الخاصة بك باستخدام المصادقة (على سبيل المثال، تحقق من توقيع webhook الخاص بـ WhatsApp) واستخدم متغيرات البيئة للبيانات الحساسة مثل رموز API.

الخطوة الخامسة: المراقبة والصيانة

  • مراقبة حالة Webhook : تحقق بانتظام من أن نقطة نهاية Webhook الخاصة بك تتلقى الأحداث. استخدم أدوات مثل AWS CloudWatch أو آلية تسجيل بسيطة.
  • تحديث إصدارات واجهة برمجة التطبيقات : قد يتم تحديث واجهات برمجة تطبيقات واتساب وسلاك. يُرجى متابعة Meta للمطورين ووثائق واجهة برمجة تطبيقات سلاك للاطلاع على أي تغييرات جوهرية.
  • التوسع حسب الحاجة : إذا زاد حجم الرسائل، ففكر في موازنة الأحمال أو تحسين أداء الخادم.

التحديات والاعتبارات

  • قيود واجهة برمجة تطبيقات واتساب : تخضع واجهة برمجة تطبيقات واتساب للأعمال لسياسات صارمة، مثل الموافقة على قوالب الرسائل وحدود الاستخدام. تأكد من الالتزام بهذه السياسات لتجنب تعليق حسابك.
  • حدود معدل الإرسال في Slack : يفرض Slack API حدودًا على معدل الإرسال (مثل رسالة واحدة في الثانية لكل قناة). لذا، يُنصح بتطبيق نظام قوائم الانتظار للإشعارات ذات الحجم الكبير.
  • خصوصية البيانات : بما أنك تتعامل مع بيانات العملاء، فتأكد من الامتثال للائحة العامة لحماية البيانات (GDPR) أو قانون خصوصية المستهلك في كاليفورنيا (CCPA) من خلال تأمين البيانات أثناء النقل وأثناء التخزين.
  • تكاليف الصيانة الإضافية : بدون خدمات الطرف الثالث، فأنت مسؤول عن وقت تشغيل الخادم والتحديثات وتصحيح الأخطاء.

خاتمة

يُعدّ دمج إشعارات واتساب مع قنوات سلاك دون الحاجة إلى خدمات خارجية طريقة فعّالة لتبسيط التواصل مع الحفاظ على تحكم كامل في بياناتك وسير عملك. من خلال الاستفادة من واجهة برمجة تطبيقات واتساب للأعمال وواجهة برمجة تطبيقات سلاك، يمكنك إنشاء حلّ مُخصّص يُلبي احتياجات فريقك. مع أن هذا الأسلوب يتطلب خبرة فنية وصيانة دورية، إلا أنه يُوفّر مرونة فائقة وتوفيراً كبيراً في التكاليف مقارنةً بالمنصات الخارجية.

مقالات/أخبار ذات صلة

طلب تجربة مجانية لواجهة برمجة تطبيقات واتساب

رقم واتساب الخاص بك* ?
رقم واجهة برمجة تطبيقات واتساب للأعمال* ?
رابط موقع شركتك الإلكتروني
ما التطبيق الذي تريد ربطه بتطبيق واتساب؟
شكراً لك! لقد تم استلام طلبك!
عذراً! حدث خطأ ما أثناء إرسال النموذج.