easyCoexistence
התחברותהתחילו תקופת ניסיון
Meta Tech Provider

אימות נקודת הקצה של וובהוק (Webhook) ב-WhatsApp

לפני מסירת אירוע כלשהו, Meta שולחת לנקודת הקצה שלכם בקשת GET עם hub.mode, hub.verify_token ו-hub.challenge. נקודת הקצה צריכה להשוות את האסימון ולהחזיר את האתגר בגוף גולמי. כל דבר אחר מונע את תחילת המסירה.

hub.challenge

הערך שיש להחזיר בגוף התגובה.

subscribe

הערך של hub.mode בבקשת אימות.

HTTPS

הסכמה היחידה ש-Meta מאמתת. HTTP נדחה לפני הקריאה.

מה בדיוק Meta שולחת?

בקשת GET לכתובת ה-URL שלכם עם שלושה פרמטרים בשאילתה. hub.mode מוגדר כ-subscribe. hub.verify_token הוא האסימון שהגדרתם בעת הגדרת היעד. hub.challenge הוא ערך ש-Meta יוצרת עבור הניסיון הזה.

נקודת הקצה צריכה להשוות את hub.verify_token לאסימון שבחרתם. אם הם תואמים, מחזירים 200 כשהגוף כולו הוא hub.challenge. לא עוטפים אותו ב-JSON, לא מוסיפים לו מרכאות ולא משאירים ירידת שורה בסוף, כפי שחלק מהמסגרות מוסיפות כברירת מחדל.

אם האסימונים אינם תואמים, מחזירים 403. זה כל הפרוטוקול, והוא קטן בכוונה.

למה תשובה שגויה נכשלת בשקט?

כי כשל באימות אינו שגיאה במערכת שלכם, אלא היעדר אימות במערכת של Meta.

כשהאתגר לא מוחזר כראוי, Meta פשוט לא מתחילה למסור אירועים ליעד הזה. השרת שלכם מחזיר 200 לאימות, ביומנים מופיעה בקשה, ושום לוח בקרה לא מדווח על בעיה. התסמין היחיד הוא שהודעות לא מגיעות, ולכן רוב האנשים מאבחנים זאת כבעיית Coexistence ולא כבעיית לחיצת יד.

לכן כדאי לבצע אימות לפני הקריאה. אנחנו בודקים שכתובת ה-URL משתמשת ב-HTTPS ושסופק אסימון אימות לפני שליחת בקשת Graph, כך שיעד פגום נכשל מיד במקום להיראות מחובר.

מה עוד יכול לחסום את האימות?

שלושה דברים שאינם קשורים לקוד.

אימות לפני נקודת הקצה. שער, שכבת אימות בסיסית או רשימת כתובות IP מורשות ידחו את הבקשה של Meta, ול-Meta אין פרטי התחברות להציג. נתיב האימות חייב להיות נגיש בלעדיהם.

הפניה מחדש. Meta קוראת לכתובת שנתתם, והפניה 301 למארח קנוני אינה מטופלת באופן שמשלים את לחיצת היד. נותנים לה את כתובת ה-URL הסופית.

וגם מסגרת שמסדרת את התגובה. החזרת מחרוזת ממטפל שעוטף הכול ב-JSON יוצרת גוף עם מרכאות סביב האתגר, ולכן הוא אינו תואם.

טעויות נפוצות

  • החזרת JSON. הגוף חייב להיות ערך האתגר הגולמי, בלי דבר מסביבו.
  • הצבת נקודת הקצה מאחורי אימות. ל-Meta אין פרטי התחברות ולכן הבקשה תידחה.
  • מתן כתובת URL שמפנה מחדש. משתמשים בכתובת הסופית.
עושים את זה עם EasyCoexistence

EasyCoexistence מאמתת שהיעד משתמש ב-HTTPS ושיש לו אסימון אימות לפני הקריאה ל-Meta, ומתעדת לחיצת יד שנכשלה בציר הזמן של החיבור במקום למחוק את היעד.

שאלות נפוצות

באיזה אסימון כדאי להשתמש?

בכל מחרוזת שתבחרו. היא מאפשרת לנקודת הקצה להבדיל בין הבקשה של Meta לבין בקשה של כל גורם אחר שלמד את כתובת ה-URL.

באיזו תדירות מתבצע האימות?

בעת ההגדרה, ושוב בכל פעם שהיעד מוגדר. נקודת קצה תקינה אינה מאומתת מחדש בכל אירוע.

אפשר לבדוק זאת בעצמי?

כן. קוראים לנקודת הקצה שלכם עם שלושת הפרמטרים ובודקים שהגוף חוזר בדיוק כערך האתגר.

מה אם השרת שלי היה מושבת בזמן האימות?

לחיצת היד נכשלת והיעד אינו מופעל. שמירה מחדש מפעילה את האימות שוב.

המשיכו לקרוא

מוכנים להתחיל?

מגדירים WhatsApp Coexistence בתוך דקות, לא חודשים. האפליקציה ממשיכה לעבוד בטלפון.

התחילו תקופת ניסיון בחינם

נבדק ב-

אימות וובהוק של WhatsApp