חלוקת שמות לתפילה
-
@קווים
את הבכיוון אבל מאוד רחוק
אולי אפילו מאוד מאוד -
@קווים
הנה קוד לגוגל סקריפט אבל הוא קוד בסיסי מאוד ותצטרך להיות עם יד על הדופק.תפתח 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!חשוב לעשות לפי הכללים שכתבתי אחרת הכל ישתבש.
יש עוד שינויים לעשות, כגון לבדוק שלא ישמרו מספרים חדשים אם אין עוד שמות.הקוד לא נבדק, אבל עקרונית אמור לעבוד.
הכל בחינם לגמרי ועל אחריותך בלבד לגמרי.
-
@עידו נראה וואו!
אבדוק ואעדכן
תודה -
@עידו
לא הצליח לי
הוא אומר אין מענה מהשרת -
@קווים
צריך לבדוק אולי מישהו מהמומחים כאן יראה למה זה ככה.אולי אבדוק יותר מאוחר גם.
-
@עידו כנראה שלא ממש הגדרתי נכון
לא הבנתי איך מקשרים את הסקריפט לsheets
יש איפשהו הדרכה לדבר הזה? -
@עידו כתב בחלוקת שמות לתפילה:
הקוד לא נבדק, אבל עקרונית אמור לעבוד.
זה לא יעבוד, גוגל סקריפט לא מחזיר תגובה טקסטואלית אלא אובייקט html שהשרת של ימות לא יודע לפענח,
(אני חושב ששמואל כתב גם שיש שם הפניות בתוך השרת של גוגל שמפריעות גם כן) -
@אביי-ורבא כתב בחלוקת שמות לתפילה:
@עידו כתב בחלוקת שמות לתפילה:
הקוד לא נבדק, אבל עקרונית אמור לעבוד.
זה לא יעבוד, גוגל סקריפט לא מחזיר תגובה טקסטואלית אלא אובייקט html שהשרת של ימות לא יודע לפענח,
(אני חושב ששמואל כתב גם שיש שם הפניות בתוך השרת של גוגל שמפריעות גם כן)אההה אז בעיה
-
@אביי-ורבא אז איך עובד המייל האוטומטי שלך?
הבנתי איך הוא עובד... קצת עבודה לכתוב את הקוד שהוא רוצה... אבל פשש איזו השקעה בשביל מערכת חינמית.
-
@אביי-ורבא כתב בחלוקת שמות לתפילה:
@עידו כתב בחלוקת שמות לתפילה:
הקוד לא נבדק, אבל עקרונית אמור לעבוד.
זה לא יעבוד, גוגל סקריפט לא מחזיר תגובה טקסטואלית אלא אובייקט html שהשרת של ימות לא יודע לפענח,
(אני חושב ששמואל כתב גם שיש שם הפניות בתוך השרת של גוגל שמפריעות גם כן)לכאורה זה מחזיר טקסט פשוט ולא HTML לא יודע מה לגבי ההפניות, אבל הערך שחוזר הוא טקסט
-
@אביי-ורבא כתב בחלוקת שמות לתפילה:
זה לא יעבוד, גוגל סקריפט לא מחזיר תגובה טקסטואלית אלא אובייקט html שהשרת של ימות לא יודע לפענח,
TextOutput היא תגובה פשוטה
אבל:@אביי-ורבא כתב בחלוקת שמות לתפילה:
יש שם הפניות בתוך השרת של גוגל שמפריעות גם כן
-
טוב הנה קוד בהשראת @אביי-ורבא
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 ואם אין מענה מהשרת להוסיף את המחייג לרשי"ת תפוצה ולהעביר אותו לשלוחת השמעה לפי נתונים הנ"ל (שהקובץ יושמע מתיקיה ראשית).
ולעשות פילטר לפי רשי"ת שכל מי שכבר רשום יעבור יש לשלוחה של ההשמעה. -
@קווים אם יש לך אפשרות להכניס כל שם לשלוחה אחרת (תחת אותו שלוחה), יש לי אולי איזה קומבינה ארוכה קצת בשבילך