חיבור טלגרם לשרת

כרגע קיים חיבור לטלגרם API, הבוט יושב על שרת של fastapi עם webhook שאני מקים עם ngrok בשביל localhost.

לא ברור איך להעביר את כל הטסטים של codecov כי לא יהיה חיבור לwebhook? :roll_eyes:

לגבי האבטחה:
חשבתי לתת למשתמש לשלוח הודעה בטלגרם והוא יקבל ID שיש לו בטלגרם עם ההודעה: להיכנס לעמוד הפרופיל שלו ולהזין את הID שם.
זה ישמור את הhash שנקבל מid. ואז כל פעם שמשתמש ישלח הודעה בבוט: שרת יבדוק את הID מול הHASH ויתן לפי זה את האירועים שלו. משתמש בכל רגע יכול למחוק את הHASH שלו בהגדרות.

וככה בעצם הבוט ירוץ על שרת שלנו.

מה דעתכם?

(הודעת catchup לכל מי שמצטרף לדיון (שהתחיל בפרטי)) –

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

אני לא בטוח שאני שמח מהעניין של האפשרות לפתוח טאנל לשרת prod שלנו, זה נשמע לי קצת מסוכן.
מה המטרה של זה? אין דרך אחרת להנגיש את ה־webhook, נניח, בעזרת השרת של fastapi?

לא בטוח שהבנתי מה הכוונה כאן

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

הייתי מדלג על עניין ה־hash ונותן לבוט גישה ברגע שהמשתמש הכניס את ה־id שקיבל מהבוט לפרופיל.
בשלב הזה כבר הייתי מדליק שדה ב־DB של telegram_bot_accessible, שאם הוא True הבוט יכול לקרוא את הפרטים הרלוונטיים.
פספסתי משהו?

  • אני עושה tunneling לlocalhost כי ניתן לחבר webhook רק עם https. בprodaction צריך להגדיר webhook עם הURL האמיתי של האתר שלנו במשתנה סביבה (או בקובץ קונפיג) - אז לא יהיה tunneling בprod.

  • כאשר ירוצו הבדיקות: הגדרת הbot_api והwebhook לא יהיו בקונפיג - חלק מהבדיקות שתלויות בחיבור יכשלו.

הייתי מדליק שדה ב־DB של telegram_bot_accessible, שאם הוא True הבוט יכול לקרוא את הפרטים הרלוונטיים.

זה לא יעזור כי פעם הבא שמשתמש ישלח הודעה - הבוט לא ידע מי מהמשתמשים שלח את ההודעה - telegram_bot_accessible לא יתן אינדיקציה מי השולח - בוט מקבל json עם telegram id של השולח בטלגרם וחייב לבדוק האם היוזר עם telegram id כזה כבר קיים בDB.

לייק 1

עשיתי PR. אשמח לקבל חוות דעתך על המימוש הנוכחי.

לייק 1