עזרה בקבלת נתונים
-
@לימוד-בתורת-מרן רשימה לבנה
-
@מוטי-קונשטט
אבל זה זיהוי לפי ת"ז כי מתקשרים כמה בחורים מאותו טלפון -
לימוד-בתורת-מרן כתב:
@מוטי-קונשטט
אבל זה זיהוי לפי ת"ז כי מתקשרים כמה בחורים מאותו טלפון@אa
יש לך פיתרון? -
ל-א-ף א-ח-ד אין פתרון??
-
@לימוד-בתורת-מרן
דווקא יש לי פיתרון.
אבל זה מצריך שרת. -
@אA
תן יש לי אבל שרת שלי -
@לימוד-בתורת-מרן
אין שום בעיה.
אתה יודע לעבוד עם בינה לבקשת קודים? -
@אA
אני מעדיף שאתה יודע יותר לפרט ממני כיאני לא מבין בזה -
@לימוד-בתורת-מרן
איזה שרת יש לך?
רנדר? -
@לימוד-בתורת-מרן
כמו כן לאיזה קובץ נכנסים ת.ז. כדי שיוכלו להיכנס למערכת? -
@אA
סליחה על האיחור פשוט לקח לי הרבה זמן למצוא אותו.
שרת לא כזה מוכר https://dash.cloudflare.com -
@לימוד-בתורת-מרן
הבנתי.
השאלה היא איך הוא עובד.
טוב, אני אנסה לכתוב משהו ונראה. -
פוסט זה נמחק! -
@אA
הבינה אמרה כך:
להלן הנחיות מרכזיות לכתיבת ועדכון קוד עבור שרת ה-Cloudflare Worker שלך (המשמש לתקשורת עם "ימות המשיח" ולשירותים נוספים):- מבנה קוד בסיסי (ES Modules)
הקוד ב-Workers מנוהל בדרך כלל בפורמט מודולרי (ESM). מבנה בסיסי טיפוסי נראה כך:
JavaScript export default { async fetch(request, env, ctx) { const url = new URL(request.url); // טיפול בבקשות לפי נתיב (Path) if (url.pathname === '/api/action') { return new Response(JSON.stringify({ success: true }), { headers: { 'Content-Type': 'application/json' } }); } return new Response('Worker is running!', { status: 200 }); }, };- עבודה עם משתני סביבה (env) וסודות (Secrets)
גישה למשתנים: נתונים רגישים (כמו טוקנים ל-API של ימות המשיח או מפתחות גישה) אינם נשמרים בקוד המקור, אלא מוגדרים כמשתני סביבה ב-Cloudflare Dashboard תחת הגדרות ה-Worker.
קריאה בקוד: ניתן לגשת אליהם דרך אובייקט ה-env (לדוגמה: env.MY_SECRET_TOKEN).
- ניהול CORS (במידת הצורך)
מכיוון שהשרת עשוי לתקשר עם אפליקציות צד-לקוח (כגון ממשקי ניהול שבנית ב-HTML/JS), יש להקפיד להוסיף כותרות CORS מתאימות בתשובות ה-HTTP:
JavaScript const corsHeaders = { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Access-Control-Allow-Headers': 'Content-Type', }; // טיפול בבקשות OPTIONS מוקדמות (Preflight) if (request.method === 'OPTIONS') { return new Response(null, { headers: corsHeaders }); }- תקשורת עם ממשקים חיצוניים (כגון "ימות המשיח")
השתמש ב-fetch מובנה לצורך שליחת בקשות HTTP (GET/POST) למערכות חיצוניות.
הקפד לבצע טיפול בשגיאות באמצעות בלוקי try...catch כדי למנוע קריסת השרת במקרה של תקלות תקשורת:
JavaScript try { const response = await fetch('https://www.call2all.co.il/ym/api/...'); const data = await response.json(); // טיפול בנתונים } catch (error) { return new Response(JSON.stringify({ error: error.message }), { status: 500 }); }- דרכי פריסה (Deployment)
עריכה מהירה: ניתן לעדכן שינויים קטנים ישירות דרך פאנל הניהול של Cloudflare בכתובת dash.cloudflare.com בלשונית Workers & Pages תחת כפתור עריכת הקוד.
פיתוח מקומי / פריסה מתקדמת: עבודה מול סביבת הפיתוח המקומית באמצעות כלי שורת הפקודה של Cloudflare (Wrangler) לניהול וגרסאות קוד מסודרות.
- מבנה קוד בסיסי (ES Modules)
-
@שמול
אתה רוצה גם? -
@אA
לי יש את זה
https://www.hostinger.com/ilאם תוכל למחוק זה לא קשור לנושא פה אין מה לכתוב זה מפריע לי ברצף
-
@אA
מה אומר? -
איך מעלים את הקוד ב-Cloudflare?
התחבר לחשבון ב-dash.cloudflare.com.
בתפריט הצדדי לחץ על Workers & Pages.
לחץ על הכפתור Create application -> לאחר מכן בחר ב-Create Worker.
תן שם ל-Worker (למשל: yemot-updater) ולחץ על Deploy.
במסך שיופיע, לחץ על Edit code.
מחק את כל הקוד הקיים בחלון העריכה, והדבק את הקוד שלמעלה.
עדכן את המשתנים בראש הקוד (YEMOT_TOKEN, TARGET_EXTENSION_PATH, וכו').
לחץ בפינה הימנית העליונה על Deploy.export default { async fetch(request, env, ctx) { // ========================================================================= // 🔧 הגדרות מערכת - ערוך את הערכים כאן לפי הצורך שלך! // ========================================================================= // 1. הטוקן של המערכת שלך בימות המשיח const YEMOT_TOKEN = "YOUR_YEMOT_TOKEN_HERE"; // 2. נתיב השלוחה שברצונך ליצור/לעדכן את קובץ ext.ini שלה (לדוגמה: ivr2:1 או ivr2:1/5) const TARGET_EXTENSION_PATH = "ivr2:1"; // 3. שם המשתנה שיירשם בקובץ ext.ini עבור הטלפון (לדוגמה: phone_number=0501234567) const PHONE_KEY_IN_INI = "phone_number"; // 4. (אופציונלי) שם המשתנה שיירשם בקובץ ext.ini עבור הת.ז. const ID_KEY_IN_INI = "id_number"; // 5. נתיב השלוחה אליה המאזין יועבר בסיום (התפריט הראשי, למשל: /1 או /) const MAIN_MENU_PATH = "1"; // ========================================================================= // קריאת הפרמטרים מכתובת ה-URL (קריאות GET) const url = new URL(request.url); const params = new URLSearchParams(url.search); // אם השיחה הגיעה ב-POST, נקרא גם את ה-Body if (request.method === "POST") { try { const formData = await request.formData(); for (const [key, value] of formData.entries()) { params.append(key, value); } } catch (e) { // במידה ולא נשלח formdata } } const idNumber = params.get("id_number"); const phoneNumber = params.get("phone_number"); // שלב 1: אם המאזין עדיין לא הכניס ת.ז. if (!idNumber) { return new Response("read=t-נא להקיש מספר תעודת זהות=id_number,no,9,9,7,b,digits", { headers: { "Content-Type": "text/plain; charset=utf-8" } }); } // שלב 2: אם הוכנסה ת.ז. אך עדיין לא הוכנס מספר טלפון if (!phoneNumber) { return new Response("read=t-נא להקיש מספר טלפון=phone_number,no,9,10,7,b,digits", { headers: { "Content-Type": "text/plain; charset=utf-8" } }); } // שלב 3: התקבלו גם ת.ז. וגם טלפון - מעדכנים את ext.ini בימות המשיח try { // בניית ה-URL לעדכון השלוחה (UpdateExtension) const updateUrl = new URL("https://www.call2all.co.il/ym/api/UpdateExtension"); updateUrl.searchParams.append("token", YEMOT_TOKEN); updateUrl.searchParams.append("path", TARGET_EXTENSION_PATH); updateUrl.searchParams.append(PHONE_KEY_IN_INI, phoneNumber); updateUrl.searchParams.append(ID_KEY_IN_INI, idNumber); // שליחת הבקשה לשרת ימות המשיח const yemotResponse = await fetch(updateUrl.toString()); // שלב 4: השמעה למאזין שהנתונים נקלטו והעברה לתפריט הראשי return new Response(`id_list_message=t-הנתונים נקלטו בהצלחה&go_to_folder=/${MAIN_MENU_PATH}`, { headers: { "Content-Type": "text/plain; charset=utf-8" } }); } catch (error) { // במקרה של שגיאה - הודעה למאזין והעברה לתפריט הראשי return new Response(`id_list_message=t-אירעה שגיאה בשמירת הנתונים&go_to_folder=/${MAIN_MENU_PATH}`, { headers: { "Content-Type": "text/plain; charset=utf-8" } }); } } }; -
@לימוד-בתורת-מרן
שים לב.
הבאתי לך למעלה את ההוראות איך להכניס את הקוד לשרת.
שני המשתנים שיש לעדכן הם מספר מערכת וטוקן וכן נתיב ושם הקובץ בו יוכנסו ת.ז. שנרשמו. -
@לימוד-בתורת-מרן
אני צריך קצת פירוט (יש צורך בישנוי בקוד).
הקוד מוגדר שלוקח את הת.ז. והטלפון בעצמו ומכניס לקובץ של הת.ז. והטלפון.
אז צריך את נתיב ושם הקובץ בהם נכנסים הת.ז. והטלפון, וכן הצורה שנכנסים.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות