אינטגרציית WhatsApp
המערכת משתלבת עם WhatsApp להתראות, התרעות עליות לתורה והודעות קהילתיות.
המימוש מסתמך על ספרייה (ככל הנראה whatsapp-web.js או דומה) עטופה בשירות מותאם אישית.
ארכיטקטורה
- בידוד: כל משתמש (Tenant) יכול לקבל session משלו ב-WhatsApp (
sessionIdמקושר ל-userId). - אירועים: האינטגרציה משתמשת ב-
EventsServiceלשידור עדכוני סטטוס (למשל,whatsapp:authenticated, ready, qr).
תהליך התחברות
- אתחול:
POST /whatsapp/connect- מפעיל את ה-worker בצד השרת עבור session המשתמש. - קוד QR:
GET /whatsapp/qr- הלקוח מבצע polling כדי להציג את קוד ה-QR לצימוד. - סטטוס:
GET /whatsapp/status- מחזיר מצב נוכחי (CONNECTED,PAIRING,DISCONNECTED).
יכולות
הודעות
- הודעות טקסט: שליחת הודעות טקסט רגילות.
- מדיה: שליחת תמונות/קבצים (
SendMediaDto). - אנשי קשר: שיתוף כרטיסי קשר (
SendContactDto). - מיקום: שיתוף מיקומים (
SendLocationDto). - סקרים: יצירת סקרים (
SendPollDto).
מפרסם עליות
השירות WhatsappAliyaPublisherService מטפל בהודעות מעוצבות לקריאת תורה (עליות), ומאפשר לגבאים לשלוח את רשימת העולים ישירות לקבוצה או רשימה.
APIs פנימיים
emit-test: נקודת קצה לדיבוג לבדיקת אירועי WebSocket.connection/retry: אילוץ לוגיקת ניסיון חוזר עבור sessions תקועים.logout: סיום מבוקר של ה-session וניקוי קבצי אימות מקומיים.
אבטחה
כל נקודות הקצה דורשות Permission.MANAGE_WHATSAPP.
תיקיית ה-session/קבצים חייבים להיות מאוחסנים בצורה מאובטחת ומבודדים לפי userId כדי למנוע דליפת נתונים בין דיירים.