• דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    • הרשמה
    • התחברות

    שיתוף קוד + מדריך התקנה + אפשרת שימוש | שלוחת הרשמה לצינתוקים אישיים (API)

    מתוזמן נעוץ נעול הועבר טיפים עצות והדגמות מהמשתמשים
    2 פוסטים 2 כותבים 19 צפיות 1 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • א מנותק
      איל משולש
      נערך לאחרונה על ידי איל משולש

      כיון שיש בעיות עם האפשרויות שיש כיום בניתי קוד שניתן לפרוסבצורה פשוטה דרך האתר המטורף של @פתרון-ai
      לכניסה לאתר יש להתחבר בלשונית "חיבורים פעילים" ל "Cloudflare"
      ואז לבחור הוספת קוד חדש "סקריפט צד שרת" ולשים את הקוד המצורף למטה, יש לשמור ולפרוס, תקבלו ללינק לשים בלשוחה
      ההגדרות בשלוחה

      type=api
      api_add_0=token=טוקן של הקו
      api_link=לינק שקיבלתם בפריסה 
      

      ניתן להשתמש בלי הפריסה עם הלינק הבא

      https://pai-dev-s-file-5pqkq7.pai-6ec8c3bb.workers.dev/
      

      הקוד:

      /**
       * Cloudflare Worker (ES Modules) - הרשמה לצינתוק אישי בימות המשיח
       *
       * מה הסקריפט עושה בכל קריאה משלוחת API:
       *  1. קורא את מספר הטלפון של המתקשר (ApiPhone) ואת נתיב שלוחת ה-API (ApiExtension).
       *  2. יוצר (או מעדכן, אם כבר קיימת) תת-שלוחה בשם הטלפון תחת שלוחת ה-API,
       *     מסוג tzintuk (הרשמה לצינתוקים) עם רשימה בשם הטלפון.
       *  3. מגדיר "מעבר בסיום" (tzintuk_end) לשלוחה האחורה - ההורה של שלוחת ה-API,
       *     כדי שהמשתמש לא ייכנס שוב לשלוחת ה-API.
       *  4. מעביר את המתקשר לתת-השלוחה החדשה (go_to_folder).
       *
       * הטוקן מתקבל בפרמטר GET בשם token (בפורמט "מספר_מערכת:סיסמה"), לדוגמה:
       *   https://your-worker.workers.dev/?token=0771234567:mypassword
       *
       * הגדרה בימות: בשלוחת ה-API הגדירו api_link לכתובת ה-Worker כולל ?token=...
       */
      
      const YEMOT_UPDATE_EXTENSION = "https://www.call2all.co.il/ym/api/UpdateExtension";
      
      export default {
        async fetch(request) {
          try {
            const params = await readParams(request);
      
            // ---- טוקן מפרמטר ה-GET ----
            const token = new URL(request.url).searchParams.get("token") || params.token;
            if (!token) {
              return reply("id_list_message=t-חסר טוקן בהגדרות&go_to_folder=hangup");
            }
      
            // ---- מספר הטלפון של המבקש ----
            const phone = String(params.ApiPhone || "").replace(/\D/g, "");
            if (!phone) {
              return reply("id_list_message=t-לא זוהה מספר טלפון. לא ניתן להירשם&go_to_folder=hangup");
            }
      
            // ---- נתיב שלוחת ה-API (השלוחה ממנה נשלחה הקריאה) ----
            const apiPath = normalizePath(params.ApiExtension);
            const parts = apiPath.split("/").filter(Boolean);
            const parentPath = "/" + parts.slice(0, -1).join("/"); // "/" אם שלוחת ה-API בשורש
            const newPath = (apiPath === "/" ? "" : apiPath) + "/" + phone;
      
            // ---- יצירת/עדכון תת-השלוחה ----
            const query = new URLSearchParams({
              token,
              path: "ivr2:" + newPath,
              type: "tzintuk",
              title: phone,
              list_tzintuk: phone,   // שם הרשימה = מספר הטלפון
              tzintuk_end: parentPath, // מעבר בסיום - אחורה, מעל שלוחת ה-API
            });
      
            const res = await fetch(YEMOT_UPDATE_EXTENSION, {
              method: "POST",
              headers: { "Content-Type": "application/x-www-form-urlencoded" },
              body: query.toString(),
            });
      
            const data = await res.json().catch(() => ({}));
            if (data.responseStatus !== "OK") {
              console.error("UpdateExtension failed:", JSON.stringify(data));
              return reply("id_list_message=t-אירעה שגיאה ביצירת ההרשמה&go_to_folder=" + parentPath);
            }
      
            // ---- העברה לשלוחה שנוצרה ----
            return reply("go_to_folder=" + newPath);
          } catch (err) {
            console.error("Worker error:", err);
            return reply("id_list_message=t-אירעה שגיאה&go_to_folder=hangup");
          }
        },
      };
      
      /** קורא פרמטרים גם מ-GET וגם מ-POST */
      async function readParams(request) {
        const out = Object.fromEntries(new URL(request.url).searchParams);
        if (request.method === "POST") {
          const type = request.headers.get("content-type") || "";
          try {
            if (type.includes("application/json")) {
              Object.assign(out, await request.json());
            } else {
              const form = await request.formData();
              for (const [k, v] of form.entries()) out[k] = String(v);
            }
          } catch (_) {
            /* גוף ריק או לא תקין - ממשיכים עם ה-query */
          }
        }
        return out;
      }
      
      /** מנרמל נתיב שלוחה: מסיר קידומת ivr2: ומוודא לוכסן בתחילה ובלי לוכסן בסוף */
      function normalizePath(p) {
        let s = String(p || "").trim().replace(/^ivr2:/, "");
        s = "/" + s.split("/").filter(Boolean).join("/");
        return s;
      }
      
      function reply(body) {
        return new Response(body, {
          headers: { "Content-Type": "text/plain; charset=utf-8" },
        });
      }
      
      
      פ תגובה 1 תגובה אחרונה תגובה ציטוט 2
      • פ מחובר
        פתרון AI @איל משולש
        נערך לאחרונה על ידי

        @איל-משולש וואו מגניב זה היה החלום שלי שיוכלו לשתף קוד ואנשים לא יסתבכו פשוט יעתיקו הכל למערכת ובלחיצה יש להם שרת והכל

        תגובה 1 תגובה אחרונה תגובה ציטוט 0

        שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

        נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

        בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

        הרשמה התחברות
        • פוסט ראשון
          פוסט אחרון