נפתר מודול API - הערך העשירי (הקשה) - מוגבל ל-800 מספרים?
-
אני משתמש בספרייה הנפלאה yemot-router2.
אני מפעיל בקשת red ואני מכניס מאפייןdigits_allowedשזה בעצם הערך העשירי בהקשה.
בערך הזה יש לפעמים כאלפיים מספרים [זה הכנסת כרטיס הגרלה, ואני מכניס לו את כל טווח המספרים האפשריים לאותו כרטיס].
בימים האחרונים הוא התחיל לקלוט רק את ה-800 המספרים הראשונים, כי על כל מספר מעבר לכך הוא משמיע את הודעהM1224"בחירה לא חוקית".
לדוגמא, נניח שהכנסתי לו מספרים מ-1000 עד 3000, אז נותן להקיש רק מספרים בין 1000 ל-1800אצלי לא השתנה משהו בקוד לאחרונה.
האם זה קשור לתקלה שהייתה בימות בסוף שבוע שעבר?
יש עוד מישהו שנתקל בזה?אשמח לכל עזרה
הנה הקוד הרלוונטי:const digits_allowed = Array.from( { length: maxNumber - minNumber + 1 }, (_, i) => i + minNumber ); const number = await call.read( [{ type: "text", data: "נא הקש את מספר הכרטיס שברשותך" }], "tap", { allow_empty: true, empty_val: null, max_digits: maxNumber.toString().length, min_digits: minNumber.toString().length, typing_playback_mode: "Digits", digits_allowed, } ); -
@בלויא
קח את הקוד הזה, הוא יותר נורמלי מה שבטוח...let stop; while (!stop){ const number = await call.read( [{ type: "text", data: "נא הקש את מספר הכרטיס שברשותך" }], "tap", { allow_empty: true, empty_val: null, max_digits: maxNumber.toString().length, min_digits: minNumber.toString().length, typing_playback_mode: "Digits", } ); if (number > 1000 && number < 4000){ stop = true; } else { call.id_list_message([{ type: "text", data: "מספר כרטיס לא תקין, אנא הקש מחדש" }], { prependToNextAction: true }); } }הקוד הזה הוא בעצם לולאה שלא תיתן לו להמשיך עד שיקיש מספר נכון בין 1000 ל 4000
זה מתאפשר מכיוון שבראוטר זה ערכים של val_1 ו val_2 ולא של שם המשתנה עצמו -
@בלויא
אני במקרה כזה לא מגביל כלום בימות המשיח אלא עושה בדיקה בצד השרת ובמידת הצורך מחזיר אותה לשלוחה או להקשה חוזרת עם הודעה שמספר הכרטיס לא נכון -
@בלויא
קח את הקוד הזה, הוא יותר נורמלי מה שבטוח...let stop; while (!stop){ const number = await call.read( [{ type: "text", data: "נא הקש את מספר הכרטיס שברשותך" }], "tap", { allow_empty: true, empty_val: null, max_digits: maxNumber.toString().length, min_digits: minNumber.toString().length, typing_playback_mode: "Digits", } ); if (number > 1000 && number < 4000){ stop = true; } else { call.id_list_message([{ type: "text", data: "מספר כרטיס לא תקין, אנא הקש מחדש" }], { prependToNextAction: true }); } }הקוד הזה הוא בעצם לולאה שלא תיתן לו להמשיך עד שיקיש מספר נכון בין 1000 ל 4000
זה מתאפשר מכיוון שבראוטר זה ערכים של val_1 ו val_2 ולא של שם המשתנה עצמו -
הנושא סומן כנפתר ב בלויא