הגדירו חוזה לאירוע אחד
- קלט: סוג אירוע, מזהה, משתמש, מינימום שדות מוסכם וזמן קבלה.
- פעולה: בדיקת גישה, חיפוש אירוע שכבר טופל ושמירת מצב הפנייה.
- פלט: מספר פנייה, מצב חילופי נתונים חיצוניים ותשובה ברורה למשתמש.
- כשל: אחראי לניסיון חוזר ולשחזור, ותקופת שמירה לאבחון ללא מידע אישי מיותר.
בחרו דרך אחת לקבל אירועים
getUpdates ו-webhook הן דרכים חלופיות לקבל עדכונים. Telegram שולח HTTPS POST ל-webhook; update_id עוזר להבחין באירועים חוזרים. בחרו לפי סביבת העבודה ודרך התפעול, ולא לפי שם שפת התכנות.
בשימוש ב-secret_token בדקו את הכותרת הנכנסת המתאימה. שמרו את טוקן הבוט והסודות בשרת, מחוץ לעמודים ציבוריים וליומנים. קבעו מי מחזיק בבוט, בכתובת המטפל ובגישה לסביבה.
מקור רשמי: Telegram Bot API: קבלת אירועים
בדקו חזרות וכשל במערכת חיצונית
בתרחיש המדומה אירוע עם אותו מזהה צריך להחזיר תוצאה שנשמרה. בקשה אחרת של משתמש צריכה מזהה עסקי משלה: טקסט זהה אינו תמיד כפילות. בעיבוד אסינכרוני שמרו את האירוע באופן אמין לפני חילופי נתונים חיצוניים.
אם CRM לא משיב, אל תכריזו שהפנייה נוצרה בו. רשמו מצב לא ודאי, בדקו תוצאה לפי מזהה ורק אז החליטו על ניסיון חוזר. אישור HTTP אינו מוכיח שכל התהליך הושלם או שאדם קיבל תשובה.
אל תסמכו על הדפדפן של Mini App
אמתו initData בשרת לפי ההליך הרשמי של Telegram לפני שימוש. initDataUnsafe אינו זהות משתמש מאומתת. לאחר האימות הפעילו הרשאות משלכם: אימות זהות אינו נותן גישה לפניות של אחרים.
קבעו סכום, מצב הזמנה ובעלות רשומה מנתוני שרת. הגבילו שדות משתמש לפורמט מוסכם. תשובת API או מסך תשלום אינם הוכחת תשלום בפועל; אישור צריך להגיע מהמקור שהוגדר.
מקור רשמי: Telegram Mini Apps: אימות נתונים
אשרו השקה בחמישה תרחישים
- פנייה חדשה תקינה: רשומה אחת נשמרת, עם מספר ומצב שאפשר לבדוק.
- אירוע חוזר: אין פנייה נוספת או התראה שנייה לא רצויה.
- כשל חיצוני: מצב גלוי, אחראי מוגדר ודרך ניסיון חוזר מוסכמת.
- רשומה של משתמש אחר או קלט שגוי: הגישה נדחית, השגיאה ברורה ואין חשיפת סוד.
- הפעלה מחדש: הפניות ומצב העיבוד נשמרים; הצוות מכיר את הליך השחזור.
בואו נדבר על הפרויקט שלכם
ספרו לנו על היעד, השפות והתכונות הדרושות לכם. נסכם את היקף העבודה ואת הצעדים הבאים.