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

    חלוקת שמות לתפילה

    שאלות ועזרה הדדית
    7
    26
    461
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ע
      עידו @קווים נערך לאחרונה על ידי עידו

      @קווים
      הנה קוד לגוגל סקריפט אבל הוא קוד בסיסי מאוד ותצטרך להיות עם יד על הדופק.

      תפתח sheets חדש.
      בעמודה 1 תכניס את השמות.
      בעמודה 4 שורה 1 תכתוב 1 - ואין לגעת בערך זה כלל!.
      תוסיף לו סקריפט חדש תכניס בו את הקוד הבא:

      function doGet(e) {
        var phone = e.parameter["ApiPhone"];
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      const tF = ss.getRange("B:B").createTextFinder(phone);
      const find = tF.findNext();
      if (find!=null)
      {
        var message ="id_list_message=t-השם הוא "+ ss.getRange(find.getRowIndex(), 1).getValue();
      return ContentService.createTextOutput(message)
          .setMimeType(ContentService.MimeType.PLAIN_TEXT);
      }
      else
      {
        var index = ss.getRange("D1").getValue();
        ss.getRange(index,2).setValue(phone);
        var message = "id_list_message=t-השם שנבחר עבורך הוא "+ ss.getRange(index,1).getValue();
        ss.getRange("D1").setValue(index+1);
        return ContentService.createTextOutput(message)
          .setMimeType(ContentService.MimeType.PLAIN_TEXT);
      }
      }
      
      

      תשמור בשם שבא לך, תעשה פריסה ושים בשלוחת API את הקישור שנתנו לך.

      עכשיו כל פעם שיכנסו לשלוחה הוא ישלח בקשה לסקריפט הזה, אם הוא ימצא את מספר הטלפון בעמודה 2 הוא יקריא את השם המשויך לו - מה שנמצא בעמודה 1. אם לא ימצא את מספר הטלפון הוא יכניס אותו בשם הראשון הפנוי ויחזיר כתשובה את השם הנבחר (יעדכן בעמודה 4 את השורה שבה יש תא פנוי למספר טלפון חדש). מכאן והלאה כל פעם שהמספר יתקשר הוא יקבל בתשובה את השם הנבחר.
      חובה להגדיר שבעמודה 2 הוא לא יוריד את ה0 הראשון בצורה אוטומטית.
      אין לגעת בערך שבעמודה 4!

      חשוב לעשות לפי הכללים שכתבתי אחרת הכל ישתבש.
      יש עוד שינויים לעשות, כגון לבדוק שלא ישמרו מספרים חדשים אם אין עוד שמות.

      הקוד לא נבדק, אבל עקרונית אמור לעבוד.

      הכל בחינם לגמרי ועל אחריותך בלבד לגמרי.

      קווים 2 תגובות תגובה אחרונה תגובה ציטוט 1
      • קווים
        קווים @עידו נערך לאחרונה על ידי

        @עידו נראה וואו!
        אבדוק ואעדכן
        תודה

        תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • קווים
          קווים @עידו נערך לאחרונה על ידי

          @עידו
          לא הצליח לי
          הוא אומר אין מענה מהשרת

          ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • ע
            עידו @קווים נערך לאחרונה על ידי

            @קווים
            צריך לבדוק אולי מישהו מהמומחים כאן יראה למה זה ככה.

            אולי אבדוק יותר מאוחר גם.

            קווים תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • קווים
              קווים @עידו נערך לאחרונה על ידי

              @עידו כנראה שלא ממש הגדרתי נכון
              לא הבנתי איך מקשרים את הסקריפט לsheets
              יש איפשהו הדרכה לדבר הזה?

              תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • א
                אביי ורבא נערך לאחרונה על ידי

                @עידו כתב בחלוקת שמות לתפילה:

                הקוד לא נבדק, אבל עקרונית אמור לעבוד.

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

                ע מ 4 תגובות תגובה אחרונה תגובה ציטוט 1
                • ע
                  עידו @אביי ורבא נערך לאחרונה על ידי

                  @אביי-ורבא כתב בחלוקת שמות לתפילה:

                  @עידו כתב בחלוקת שמות לתפילה:

                  הקוד לא נבדק, אבל עקרונית אמור לעבוד.

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

                  אההה אז בעיה

                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • ע
                    עידו @אביי ורבא נערך לאחרונה על ידי עידו

                    @אביי-ורבא אז איך עובד המייל האוטומטי שלך?

                    הבנתי איך הוא עובד... קצת עבודה לכתוב את הקוד שהוא רוצה... אבל פשש איזו השקעה בשביל מערכת חינמית.

                    תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • ע
                      עידו @אביי ורבא נערך לאחרונה על ידי

                      @אביי-ורבא כתב בחלוקת שמות לתפילה:

                      @עידו כתב בחלוקת שמות לתפילה:

                      הקוד לא נבדק, אבל עקרונית אמור לעבוד.

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

                      לכאורה זה מחזיר טקסט פשוט ולא HTML לא יודע מה לגבי ההפניות, אבל הערך שחוזר הוא טקסט

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • מ
                        מנצפכ @אביי ורבא נערך לאחרונה על ידי

                        @אביי-ורבא כתב בחלוקת שמות לתפילה:

                        זה לא יעבוד, גוגל סקריפט לא מחזיר תגובה טקסטואלית אלא אובייקט html שהשרת של ימות לא יודע לפענח,

                        TextOutput היא תגובה פשוטה
                        אבל:

                        @אביי-ורבא כתב בחלוקת שמות לתפילה:

                        יש שם הפניות בתוך השרת של גוגל שמפריעות גם כן

                        תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • ע
                          עידו נערך לאחרונה על ידי עידו

                          טוב הנה קוד בהשראת @אביי-ורבא

                          function doGet(e) {
                            var phone = e.parameter["ApiPhone"];
                            var ss = SpreadsheetApp.getActiveSpreadsheet();
                            const tF = ss.getRange("B:B").createTextFinder(phone);
                            const find = tF.findNext();
                            if (!find)
                              {
                              var indexOfNullCell = findNullIndex(ss.getRange("B:B").getValues())
                              if(indexOfNullCell>0 && ss.getRange(indexOfNullCell,1).getValue())
                                {
                                  ss.getRange(indexOfNullCell,2).setValue(phone);
                                  var message = buildMessage(ss);
                                  message = encodeURIComponent(message);
                                  UrlFetchApp.fetch(`https://www.call2all.co.il/ym/api/UploadTextFile?token=מספר מערכת:סיסמה&what=ivr2:IdListMessage.ini&contents=${message}`);
                                }
                              }
                          }
                          
                          function findNullIndex(rangeValues)
                          {
                            var index = -1;
                            for(var i =0; i<rangeValues.length; i++)
                            {
                              if (!rangeValues[i])
                              {
                                index = i+1;
                                break;
                              }
                          
                            }
                            return index;
                          }
                          
                          function buildMessage(ss) {
                            var data = ss.getRange("A:B").getValues();
                          
                            var message = "";
                          
                            for (var i = 0; i < data.length; i++) {
                              var cellA = data[i][0];
                              var cellB = data[i][1];
                          
                              if (cellA && cellB) {
                                message += cellA + "=" + cellB + "/n";
                              }
                              else
                              if(!cellA)
                              {
                                break;
                              }
                            }
                          
                            message = message.slice(0, -3);
                          
                            return message;
                          }
                          
                          
                          

                          אין לי דרך לבדוק אותו אבל הוא פשוט מוסיף את השם החדש לרשימה של השמעת נתונים והודעות אישיות. אם יש מישהו שמבין בקוד אשמח אם יבדוק אותו (הchat gpt טוען שהוא לא נכון, אבל אני לא סומך עליו).

                          צריך שלוחת API ושלוחת השמעת נתונים והודעות אישיות.

                          בשלוחת API צריך לעשות בקשת API ואם אין מענה מהשרת להוסיף את המחייג לרשי"ת תפוצה ולהעביר אותו לשלוחת השמעה לפי נתונים הנ"ל (שהקובץ יושמע מתיקיה ראשית).
                          ולעשות פילטר לפי רשי"ת שכל מי שכבר רשום יעבור יש לשלוחה של ההשמעה.

                          תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • צ
                            צבי ד"צ מומחה @קווים נערך לאחרונה על ידי

                            @קווים אם יש לך אפשרות להכניס כל שם לשלוחה אחרת (תחת אותו שלוחה), יש לי אולי איזה קומבינה ארוכה קצת בשבילך

                            תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • ע
                              עידו נערך לאחרונה על ידי עידו

                              @קווים
                              בדקת את מה שהצעתי?

                              function doGet(e) {
                                var phone = e.parameter["ApiPhone"];
                                var ss = SpreadsheetApp.getActiveSpreadsheet();
                                const tF = ss.getRange("B:B").createTextFinder(phone);
                                const find = tF.findNext();
                                if (!find)
                                  {
                                  var indexOfNullCell = findNullIndex(ss.getRange("B:B").getValues())
                                  if(indexOfNullCell>0 && ss.getRange(indexOfNullCell,1).getValue())
                                    {
                                      ss.getRange(indexOfNullCell,2).setValue(phone);
                                      var message = buildMessage(ss);
                                      message = encodeURIComponent(message);
                                      UrlFetchApp.fetch(`https://www.call2all.co.il/ym/api/UploadTextFile?token=073****:****&what=ivr2:IdListMessage.ini&contents=${message}`);
                                    }
                                  }
                              }
                               
                              function findNullIndex(rangeValues)
                              {
                                var index = -1;
                                for(var i =0; i<rangeValues.length; i++)
                                {
                                  if (!rangeValues[i])
                                  {
                                    index = i+1;
                                    break;
                                  }
                               
                                }
                                return index;
                              }
                               
                              function buildMessage(ss) {
                                var data = ss.getRange("A:B").getValues();
                               
                                var message = "";
                               
                                for (var i = 0; i < data.length; i++) {
                                  var cellA = data[i][0];
                                  var cellB = data[i][1];
                               
                                  if (cellA && cellB) {
                                    message += cellA + "=" + cellB + "/n";
                                  }
                                  else
                                  if(!cellA)
                                  {
                                    break;
                                  }
                                }
                               
                                message+= "default=לא הוקצה שם עבור מספר זה";
                               
                                return message;
                              }
                               
                               
                              
                              

                              בכניסה לעשות שלוחה שתתבדוק כניסה לפי API, שמוגדרת שכשאין מענה תעביר לשלוחה להשמעת נתונים אישיים שמשמיעה נתונים מהשלוחה הראשית.

                              תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • פוסט ראשון
                                פוסט אחרון