פעולות סינכרוניות ואסינכרוניות ב-RBM

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

אינטראקציות של RBM API פועלות בדרך כלל לפי דפוס של בקשה-תגובה סינכרוני ברמת ה-HTTP. עם זאת, התוצאות של הרבה קריאות ל-API, במיוחד שליחת הודעות, מטופלות באופן אסינכרוני באמצעות webhooks. פרטים נוספים מופיעים בקטעים הבאים.

שליחת הודעות: בקשה סנכרונית, העברה אסינכרונית

בקשת ה-API של phones.agentMessages.create מעובדת באופן סנכרוני מנקודת המבט של ה-API. כששולחים בקשת HTTP לפלטפורמת RBM, השרת משיב כמעט באופן מיידי עם קוד סטטוס HTTP רגיל (כמו 200 OK או שגיאה) כדי לציין אם הבקשה התקבלה ותקפה.

עם זאת, ההעברה בפועל של ההודעה למשתמש הקצה מתבצעת באופן אסינכרוני. הגורמים הבאים יכולים להשפיע על התהליך הזה:

  • סטטוס הנמען: יכול להיות שהמשתמש לא מחובר לאינטרנט, שהסוללה שלו ריקה או שהוא לא הפעיל את RCS.
  • תנאי הרשת: בעיות ברשת הסלולר של הספק יכולות לעכב או למנוע את העברת ההודעות.

פלטפורמת RBM מספקת עדכונים על סטטוס השליחה של הודעות (כמו אישורי מסירה ואישורי קריאה) באופן אסינכררוני באמצעות webhooks. לכן, בעוד שבקשת ה-API הראשונית היא סינכרונית, צריך להסתמך על אירועים אסינכררוניים של webhook כדי לעקוב אחר שליחת ההודעות. אל תצפו לאישור מיידי של סטטוס המסירה בתגובה להודעה phones.agentMessages.create.

אינטראקציות אחרות עם RBM API

רוב ממשקי ה-API האחרים של RBM מבוססי-HTTP פועלים גם לפי מודל של בקשה-תגובה סינכרוני. ממשקי ה-API האלה מספקים תגובת HTTP מיידית שמציינת את סטטוס הבקשה (הצלחה או שגיאה). עם זאת, למרות שהבקשה היא סנכרונית, הפעולות שמתקבלות כתוצאה ממנה עשויות לכלול תהליכים לא סנכרוניים. לדוגמה, קבלת תשובה מוצלחת לקריאה ל-API לעדכון פרטי הנציג לא אומרת שהעדכון ישתקף באופן מיידי בכל מקום. יכול להיות עיכוב קצר בהפצה.

נקודת קצה של webhook: אירועים אסינכרונים

האירועים הבאים מועברים באופן אסינכרוני לנקודת הקצה של webhook:

  • הודעות נכנסות ממשתמשים: פלטפורמת RBM דוחפת הודעות נכנסות ממשתמשים לנקודת הקצה של ה-webhook. חשוב לאמת הודעות נכנסות.
  • אישורי שליחה וקריאה: התראות על שליחת הודעות ועל סטטוס הקריאה שלהן נשלחות דרך webhooks.
  • אירועי שיחה: אירועים מסוימים שקשורים לשיחה, כמו אינדיקטורים של הקלדה, נשלחים דרך webhooks.
  • אירועי תפוגה וביטול של הודעות: פלטפורמת RBM שולחת אירועים כדי לוודא שהודעה שפג תוקפה בוטלה בהצלחה.