וובהוקים של WhatsApp: ניתוב הודעות ישירות לשרת שלכם
וובהוק (Webhook) של WhatsApp הוא נקודת קצה ב-HTTPS שאתם מגדירים, ו-Meta שולחת אליה אירועים: הודעות נכנסות, סטטוסי מסירה, שינויי איכות ועדכוני חשבון. במספר Coexistence אפשר להגדיר את היעד לשרת שלכם, כך שהשיחות לעולם לא עוברות דרך ספק כלשהו.
- Meta שולחת אירועים ישירות לכתובת ה-URL שלכם
- נקודת הקצה שלכם, לא הפלטפורמה של ספק
- override אחד לכל חשבון WhatsApp Business
לא תחויבו במשך 7 ימים. בטלו בכל זמן.
מה כוללת האינטגרציה: יעד HTTPS אחד לכל חשבון.
messages ו-smb_message_echoes, אירועי נתיב ההודעות שמנותבים אליכם.
הערך ש-Meta שולחת בתהליך ה-GET, ושנקודת הקצה שלכם חייבת להחזיר.
מה Meta שולחת בפועל לוובהוק?
אירועים, המחולקים לקטגוריות, וההבדל ביניהם קובע את הארכיטקטורה שלכם.
נתיב ההודעות כולל את מה שהלקוחות שולחים, ובמספר Coexistence גם העתקים של מה שהצוות שלכם שולח מאפליקציית WhatsApp Business. אלה השדות messages ו-smb_message_echoes, והם מכילים את תוכן השיחה.
הנתיב התפעולי כולל את כל השאר: account_update כשסטטוס החיבור משתנה, phone_number_quality_update כשאיכות או קצב השליחה משתנים, account_alerts, account_review_update, business_capability_update ו-phone_number_name_update. אירועים אלה אינם כוללים תוכן שיחה, ועליהם מבוססת הניטור.
ספק שממקם את עצמו בנתיב ההודעות מקבל את קבוצת האירועים הראשונה. ספק שלא עושה זאת, לא מקבל אותה.
איך Meta מאמתת נקודת קצה?
באמצעות בקשת GET לפני שהיא מתחילה להעביר משהו. כשל באימות הזה הוא הסיבה הנפוצה ביותר לכך שהגדרה שנראית מוכנה לא מקבלת הודעות.
Meta קוראת לכתובת ה-URL שלכם עם hub.mode שמוגדר ל-subscribe, עם hub.verify_token שלכם ועם ערך hub.challenge. נקודת הקצה שלכם חייבת להחזיר את האתגר הזה בגוף התגובה הגולמי, ללא עטיפה ב-JSON וללא תוספות. אם היא לא עושה זאת, Meta לא מתחילה להעביר אירועים, ובשום לוח בקרה לא תופיע על כך הודעה.
נקודת הקצה חייבת להשתמש גם ב-HTTPS. נקודת קצה שמחזירה 404 שקט, או שנמצאת מאחורי שכבת אימות שחוסמת את Meta, נראית כמו הגדרה תקינה עד שההודעה הראשונה לא מגיעה.
האם היעד יכול להיות השרת שלכם?
כן, וזה החלק שמשתנה בין ספקים.
Meta מאפשרת לאפליקציה לעקוף את היעד שאליו חשבון WhatsApp Business מסוים שולח את הוובהוקים שלו. אנחנו מגדירים את העקיפה לכתובת ה-URL שלכם, וכך מעבירים את אירועי נתיב ההודעות מה-callback שלנו אליכם. את האירועים התפעוליים אנחנו משאירים אצלנו, כי לוח הבקרה ומערכת ההתראות מבוססים עליהם.
התוצאה היא ארכיטקטונית, ולא מדיניות שאנחנו מפרסמים. אין אצלנו מקום שבו תוכן השיחה יכול להישמר, כי הוא לא נשלח אלינו. חשבון ללא override חוזר ל-callback ברירת המחדל שלנו, ושם המטפל משליך את האירועים האלה בלי לשמור אותם.
מה קורה ליעד כשמספר מתחבר מחדש?
הוא מוסר, וזה הכשל שכמעט אף אחד לא מתכנן לקראתו.
היעד אינו מאפיין של מספר הטלפון. זהו override במינוי של האפליקציה שלנו לחשבון WhatsApp Business. כשחיבור מוסר, בגלל כלל ארבעה עשר ימי חוסר הפעילות של Meta או מסיבה אחרת, האפליקציה מוסרת מהחשבון וה-override נמחק איתה.
החיבור מחדש מחזיר את השליחה ואת הניטור. הוא לא מחזיר את השליחה לשרת שלכם, ושום דבר לא מדווח על שגיאה, לכן הסימן הראשון עשוי להיות לקוח שאומר שאף אחד לא ענה לו. אנחנו מחילים מחדש את ה-override בכל חיבור מחדש, כי זה קרה למספר אמיתי שהתחבר מחדש בהצלחה ואז השתתק.
טעויות נפוצות
- החזרת JSON מבקשת האימות של GET. Meta מצפה לערך הגולמי של hub.challenge בלבד.
- שימוש בכתובת URL זמנית או לבדיקה. Meta ממשיכה לשלוח אליה גם אחרי שהכלי שיצר אותה מפסיק להאזין.
- הנחה שהיעד נשאר לאחר חיבור מחדש. הוא שייך למינוי של אפליקציה, ומוסר יחד איתה.
- הצבת נקודת הקצה מאחורי אימות שחוסם את הבקשה של Meta.
EasyCoexistence מגדירה את עקיפת הוובהוק לנקודת הקצה שלכם, מאמתת אותה לפני הקריאה ומחילה אותה מחדש אוטומטית אחרי כל חיבור מחדש. החל מ-US$ 9 למספר בחודש, ועד US$ 2 במחיר כמות, עם 7 ימי ניסיון ראשונים בחינם.
שאלות נפוצות
האם ההודעות שלי עוברות דרך EasyCoexistence?
לא. העקיפה שולחת את אירועי נתיב ההודעות ישירות מ-Meta לנקודת הקצה שלכם. אירועים של חשבון ללא override חוזרים ל-callback שלנו ונמחקים בלי להישמר.
האם אפשר לשנות את היעד מאוחר יותר?
כן, בכל זמן, מלוח הבקרה או דרך מחבר MCP. העברת null מאפסת אותו לברירת המחדל שלנו.
מה קורה אם השרת שלי מושבת כש-Meta שולחת אירוע?
Meta מנסה שוב במשך זמן מה ואז מפסיקה. ההודעות עדיין מגיעות לאפליקציית WhatsApp Business בטלפון, כך שהעסק לא מאבד דבר גם כשהאינטגרציה מושבתת.
האם וובהוק אחד מספיק לכמה מספרים?
כן. מפנים כל מספר לאותה נקודת קצה ומנתבים לפי מזהה מספר הטלפון שמתקבל ב-payload.
המשיכו לקרוא
מוכנים להתחיל?
מגדירים WhatsApp Coexistence בתוך דקות, לא חודשים. האפליקציה ממשיכה לעבוד בטלפון.
התחילו תקופת ניסיון בחינםלא תחויבו במשך 7 ימים. בטלו בכל זמן.נבדק ב-