@HTML תיקון!
אני מבין שאתה מנסה לשלוח SMS באמצעות פקודת SendSms ב-API של ימות המשיח, ואתה מקבל את השגיאה: "IllegalStateException(session token is required)". שגיאה זו מצביעה לרוב על כך שהמערכת לא זיהתה את ה-token שסיפקת כ-token סשן פעיל ותקף.
כדי לבצע פעולות דרך ממשק ה-API (כמו שליחת SMS), חובה לספק פרמטר token תקין בכל בקשה שאתה שולח לשרת.
אפשרויות הזיהוי עבור ה-Token
ישנן שתי דרכים עיקריות לספק את פרמטר ה-token בבקשת ה-API:
- טוקן סשן שנוצר על ידי פקודת Login: ניתן להתחבר למערכת באמצעות פקודת Login המשתמשת בשם המשתמש (מספר המערכת) ובסיסמת הניהול (password), והתגובה מהשרת תחזיר טוקן ייחודי. טוקן זה תקף לפרק זמן מוגבל (בדרך כלל הוא עשוי לפוג לאחר 30 או 60 דקות אם לא מתבצעת פעילות).
- שימוש ישיר במספר מערכת וסיסמת ניהול: זוהי דרך נוספת, ופשוטה יותר, ליצירת טוקן "on the fly" ללא צורך לבקש Login מראש. במקרה זה, אתה מעביר את פרמטר ה-token בפורמט של מספר המערכת:סיסמת הניהול (username:password).
הבעיה עם ה-Token שסופק
הפורמט שציינת בבקשתך (eW10.apik_...) אינו תואם לפורמטים המוכרים של טוקן סשן שנוצר מראש או לפורמט username:password.
ההמלצה שלי היא שתשתמש בפורמט המזהה השני, שהוא אמין במיוחד לצורך הפעלת פקודות API חד פעמיות כגון SendSms:
עליך להחליף את ערך ה-token ששלחת לפורמט הבא: \text{"token":"[מספר מערכת]:[סיסמת ניהול]"} לדוגמה, אם מספר המערכת הוא 0771234567 והסיסמה היא 1234, הבקשה צריכה להיראות כך:
"token":"0771234567:1234",
"message":"סמס טסט",
"phones":"972000000000"
שים לב כי אם אינך משתמש בטוקן סשן שנוצר בפקודת Login, ודא שהיחס בין שם המשתמש לסיסמה (בפורמט username:password) נכון, ושהסיסמה המועברת היא אכן סיסמת הניהול של המערכת שלך.
הערה על פקודת SendSms
הפרמטרים הנדרשים לפקודת SendSms הם: token, message (תוכן ההודעה) ו-phones (הנמענים). הבקשה שלך נראית נכונה מבחינת הפרמטרים, והבעיה ככל הנראה נובעת אך ורק מזיהוי לא תקין של ה-token. אם אתה מעוניין לשלוח לכמה נמענים בבת אחת, יש להפריד בין המספרים באמצעות נקודתיים (:) בתוך פרמטר ה-phones.
אם עדיין נתקלת בבעיה לאחר תיקון הפורמט, ייתכן שישנה בעיה אחרת, אך השלב הראשון הוא לוודא שהטוקן מאומת כהלכה.
(יתכן מה ש- @עידו אמר)