@פיתה הכותרת לא לענין, צריך לכתוב כותרת ממצה מובנת ושתשמור על הרמה של הפורום.
הפוסטים הטובים ביותר שנוצרו על ידי עידו
-
RE: כיתוב שאני רצה להורידפורסם בשאלות ועזרה הדדית
-
הוספת, התאמת והשמעת נתוני רישום דרך גוגל סקריפט - קבלת נתונים בשילוב הודעות אישיותפורסם בהסברים מסודרים ממשתמשים
ראיתי שהמון אנשים מחפשים לשמור ולהשמיע נתונים דרך גוגל סקריפט וגוגל שיטס, אכתוב כאן את הדרך הנכונה בעיני.
הדרך היא ע"י שלוחת קבלת נתונים ושלוחת השמעה אישית (id_message).
הנה דוגמא למערכת תיווך דירות לחגים, המערכת שומרת פרטי דירה להשכרה, מחפשת דירה להתאמה + הוספת קובץ הודעה אישית ומוחקת מודעות.
שלוחת קבלת נתונים מאפשרת לנו לשנות את הזרימה על פי הקשת המאזין, שזה כלי מאוד טוב בשביל הנושא שלנו, נשתמש בו כך:
קודם כל יוצרים תרשים זרימה של השאלות והניתובים לפי ההקשות, הנה דוגמא חדש.drawio (1).html האתר הזה מאוד נוח למטרה זו.
לפי תרשים הזרימה נבנה את השאלות ונוסיף להם את הפרמטר checkGoTo.
בקובץ RecordingAndEnteringDataCheckGoTo נפרט לפי התיעוד את תהליך הזרימה לפי ההקשות, כמו כאן - RecordingAndEnteringDataCheckGoTo.ini .
נבנה שיטס מתאים, זה לדוגמא, ונצרף אליו 3 סקריפטים:- סקריפט שישים את מה שהמאזין מקיש במקום הנכון (שימו לב, החלק הזה גם הוא קצת מתוחכם, אבל לא אוכל להעלות אותו לכאן... אל דאגה קצת חשיבה זה כל מה שצריך בשביל החלק הזה).
- סקריפט שיבדוק את התאים לפי הנתונים שהוקשו, אם ימצא התאמה יכין מזה קובץ TTS ששמו כמספר הטלפון של המפרסם ויעלה אותו לשלוחת הודעות אישיות.
- סקריפט שמוחק את הפרטים לפי מספר טלפון.
שלוחה 1 תהיה שלוחת רישום, שלוחת קבלת נתונים שנשים בה את הקישור לפריסה של הסקריפט לרישום בתור קישור אליו ישלחו נתוני ההרשמה.
שלוחה 2 תהיה שלוחת מציאת התאמה, שלוחת קבלת נתונים שנשים בה את הקישור לפריסה של הסקריפט למציאת התאמה בתור קישור אליו ישלחו נתוני ההרשמה, מהשלוחה הזאת צריך להגדיר מעבר לשלוחת השמעת נתונים.
שלוחה 3 תהיה שלוחת מחיקה, שלוחת קבלת נתונים שנשים בה את הקישור לפריסה של הסקריפט לרישום בתור קישור אליו ישלח פרטי המתקשר והאם אישר למחוק.בשביל קוים שצריך בהם אפשרות לעדכון הפרטים כגון רישום או מכירה שרוצים לתת למאזין את האפשרות לבטל מוצרים ו/או להוסיף מוצרים נעשה את שלוחת מציאת התאמה הפוך - שלוחת הרישום תיצור קובץ TTS עם ההזמנה או פרטי הרישום בשלוחה המתאימה, ובאותה השלוחה נגדיר שמי שיש לו קובץ להשמעה יעבור לשלוחת עדכון (במקרים מסוימים זה יכול להיות פשוט שוב שלוחת רישום ובמקרים מסוימים יצטרך סקריפט מיוחד לכך) , מי שאין לו קובץ השמעה, ישמע הודעה מתאימה ויעבור לשלוחת רישום.
יש כאן בקו 083130311 שלוחה 6 דוגמא של המערכת הנ"ל בלי השלוחה של השמעות אישיות את מה שהייתם שומעים אם זה היה גירסה מלאה תוכלו לראות בעמוד השני של השיטס הנ"ל. השורות מתאפסות כל כמה דקות כדי שתוכלו לנסות את זה בעצמכם בלי חשש שהמספר שלכם ישאר שם יותר מידי זמן. הוספתי בו נתונים אקראיים לתועלת הציבור.
בקו אמיתי צריך כמובן להשקיע בהקלטות או ניקוד הטקסט להשמעה, ואולי חלוקה אחרת לערים ורחובות (אני לא רואה ענין ברחוב, הרי לא בהכרח מחפשים רחוב, מחפשים בעיקר שכונה), השמעה הערך שהוקש ולא רק המספר (לדוגמא ירושלים ולא 1) אבל בתור דוגמא זה בסדר.
אני לא נכנס לנושא חסימת שרתי גוגל, דברו על זה מספיק.
מקוה שהובנתי (בכל זאת 12 בלילה) ועזרתי.
-
RE: עדכונים בנוגע לקריסת השרתים של ימות מהבוקר, בעז"ה הכל יסתדר וישוחזר, רק סבלנות!!! ולא לגעת סתם במערכות!פורסם בשאלות ועזרה הדדית
@ע-ג כתב בדחוף!!! נסגרו לי כמה מערכות בלי שנגעתי באף אחת!!!:
אחרי שהתקלה כל כך נרחבת -משהו לא סטנדרטי בימות המשיח
וברוח הארועים מהתקופה האחרונה
ניתן להעלות את הספקולציה הבאה:
חוקרי להב 433 פשטו הבוקר על משרדי חברת ימות המשיח, עצרו בכירים והחרימו שרתים
מעניין האם זה אכן משהו בכיון הזה...
קצת מוזר כל הסיפור הזה...חחחח
יותר סביר שהאקרים פרצו להם לשרתים... זה דברים שקורים על בסיס יומי... ויכול להסביר למה רק חילק מהשרתים בעייתים.
זה גם יכול להיות כמה שורות קוד שעודכנו וגרמו לבאג נרחב...
יכול להיות מיליון ואחד דברים, חקירה משטרתית פחות... -
RE: מה קרה לאחרונה בימותפורסם בעזרה הדדית למשתמשים מתקדמים
@ימות-המשיח מתלוננים על כך שלא מודיעים מראש, זה הכל.
הקו בחינם זה לא משהו שדחקו את ימות המשיח לפינה בשביל לקבל אותו, זו הצעה שלכם ודרך שלכם למשוך לקוחות, א"א להגיד זה בחינם אז אתם לא יכולים להתלונן...
כולם מודעים לכך שלימות המשיח אין הכנסה שוטפת מהקוים ומחפשים דרך אחרת להכנסה (הוט מובייל לא קשור לנושא כמובן), אבל יש קוים שהם עסקיים וכל השינויים האלו בהם גורמים רע מאוד לעסקים האלו (הטענה לא ידענו שזה לא עסקי לא עוזרת, כי אתם הרי יודעים שיש קוים שאתם לא מודעים שהם עסקיים והשינויים האלו עושים להם רע. וכן, אין ולא היתה שום דרישה לידע מה עסקי ומה לא, אף אחד לא חשב שזה מענין מישהו בשביל שיטרח לידע). וגם אם זה לא עסקי, הפרסומות לא תמיד מתאימות למגזר החרדי שאליהם אתם פונים.כל מה שביקשו זה שקיפות, אל תכניסו פרסומות בלי להודיע (תכניסו, אבל תודיעו), אל תעלו הודעות נגד חברה בלי להודיע. בקיצור אל תנהגו כלפינו הלקוחות כמו שלא היתם רוצים שינהגו כלפיכם אפילו אם אנחנו מקבלים שירות בחינם (למרות שזה לא קשור כיון שהפרסומות זה תשלום נפרד, וגם מי שמשלם על הקו סובל מהם).
-
RE: האם ימות המשיח תומכים בשרת API של גוגל סקריפט?פורסם בפורום מפתחים API
@טנטפון כתב בהאם ימות המשיח תומכים בשרת API של גוגל סקריפט?:
@פנסאים בגוגל סקריפט יוצרים קודים ב GS וימות המשיח לא תומכים בשפת לקוח תחשוב לבד למה
לא קשור, הבעיה אחרת לגמרי -
טופס להגדרת הקשות בשלוחת קבלת נתוניםפורסם בהסברים מסודרים ממשתמשים
הטופס בקישור הזה
למרות שרוב ההגדרות נמצאות שם, עדיין יש דברים שצריכים להגדיר לבד.
אין לי כמובן אחריות על כלום!תהנו.
-
RE: אבטחה - באימות דו שלבי / דעתכם... 🪪💂🏻פורסם בעזרה הדדית למשתמשים מתקדמים
@פלוס הכל יכול להיות... כל שינוי קוד יכול לגרום לבלאגן שלם. לא מזמן עשיתי שינוי בקוד שכתבתי ללקוח, טרור שלם זה עשה לי... לקח לי כמה ימים לסדר הכל... שלא לדבר על זה שבלחיצת כפתור שגויה מחקתי טבלה שלמה עם כל התוכן שלה במסד נתונים... מזל שהיה לי גיבוי... בקיצור זה יכול להיות עדכון בקוד... זה גם יכול להיות פריצת האקרים, לא מזמן פרצו לשרתי אינטרנט רימון ובמשך שבוע + לא היה לי אנטרנט בגללם... זה גם יכול להיות סתם וירוס או שרת שהתקלקל לו חלק, בסופו של דבר שרת זה מחשב עם דיסק קשיח והכל... בקיצור יכול להיות הרבה דברים, אני מאמין שזה ישאר לנו לדימיון ולא מעבר, לא מאמין שיפרטו יות רמידי מה קרה.
-
RE: המרת טקסט לדיבור מטורפת!!!! ב ח י נ ם!!!!!פורסם בטיפים עצות והדגמות מהמשתמשים
@CUBASE @אביי-ורבא @אופיר @מתעניין וכו' שלחתי בקשה לנטפרי והם פתחו את זה דרך הקוסממוס של אביי ורבא.
לכאורה כרגע זו האופציה היחידה בנטפרי.
@אביי-ורבא יש לך כרגע בלעדיות, אתה יכול לקחת מחיר כפול
רק אל תשכח את מי ששלח לנטפרי לפתוח 
-
RE: קטגוריה לריסיילר ובוני מערכותפורסם בעל הפורום
@sumone לא מדובר על להסתיר מלקוחות שלך, אלא בכללי, שלא מחר יבוא מישהו יאמר רגע אבל בפורום כתוב...
שת"פ לדוגמא, לקוח רוצה ממני מערכת מסוימת ואני יודע שצדיק תמים בנה בשביל זה סקריפט טוב, אני מבקש ממנו שיפעיל את הסקריפט בסכום מסוים וממשיך משם, למה הלקוח צריך לדעת מזה?
עוד דוגמא, לקוח צריך api ואני לא חזק בתחום, אז אני מבקש ממשהו שיעזור בחלק הזה, מיותר שהלקוח ידע.
אני מאמין שיש עוד דוגמאות אבל זה הרעיון.
-
RE: פקודה מהירה להעתקת כל המספרים מרשי"ת X לרשי"ת Yפורסם בעזרה הדדית למשתמשים מתקדמים
@צבי-ד-צ @זאביק טוב בקשה מgpt זה מה שיצא תכניס את זה לשרת שלך, כמובן על אחריותך בלבד...
<?php $success = ''; $error = ''; $transferredCount = 0; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $token = $_POST['token']; $sourceTemplateId = $_POST['source_template']; $targetTemplateId = $_POST['target_template']; function apiRequest($url, $data) { $curl = curl_init($url); curl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($data), ]); $response = curl_exec($curl); curl_close($curl); return json_decode($response, true); } // שליפת רשימת המספרים $getUrl = 'https://www.call2all.co.il/ym/api/GetTemplateEntries'; $getResponse = apiRequest($getUrl, [ 'token' => $token, 'templateId' => $sourceTemplateId, ]); if (!isset($getResponse['entries'])) { $error = "שגיאה בקבלת רשימת המספרים"; } else { // ניקוי הרשימה הקיימת $clearUrl = 'https://www.call2all.co.il/ym/api/ClearTemplateEntries'; apiRequest($clearUrl, [ 'token' => $token, 'templateId' => $targetTemplateId, ]); // הוספת המספרים החדשים $updateUrl = 'https://www.call2all.co.il/ym/api/UpdateTemplateEntry'; foreach ($getResponse['entries'] as $entry) { $res = apiRequest($updateUrl, [ 'token' => $token, 'templateId' => $targetTemplateId, 'phone' => $entry['phone'], 'name' => $entry['name'] ?? '', 'moreinfo' => $entry['moreinfo'] ?? '', 'blocked' => $entry['blocked'] ? 1 : 0, ]); $transferredCount++; } $success = "בוצעה העברה של $transferredCount מספרים בהצלחה."; } } ?> <!DOCTYPE html> <html lang="he"> <head> <meta charset="UTF-8"> <title>העברת מספרים בין תבניות</title> <style> body { font-family: sans-serif; direction: rtl; padding: 20px; max-width: 600px; margin: auto; } label { display: block; margin-top: 10px; } input[type="text"], input[type="number"] { width: 100%; padding: 8px; margin-top: 5px; } button { margin-top: 20px; padding: 10px 20px; font-size: 16px; } .msg { margin-top: 20px; font-weight: bold; } </style> </head> <body> <h2>העברת מספרים בין רשימות תפוצה</h2> <form method="post"> <label>Token: <input type="text" name="token" required> </label> <label>מזהה תבנית מקור: <input type="number" name="source_template" required> </label> <label>מזהה תבנית יעד: <input type="number" name="target_template" required> </label> <button type="submit">העבר מספרים</button> </form> <?php if (!empty($error)): ?> <div class="msg" style="color: red;"><?= htmlspecialchars($error) ?></div> <?php elseif (!empty($success)): ?> <div class="msg" style="color: green;"><?= htmlspecialchars($success) ?></div> <?php endif; ?> </body> </html>
פוסטים אחרונים שנוצרו על ידי עידו
-
RE: השתיקה הרועמת (באופן רשמי של ימות) במהלך הקריסה האחרונהפורסם בבאגים במערכת
@צבי-ד-צ תראה, כל עוד החברה לא יצאה מזה, והיא בפירוש עוד לא יצאה מזה, לא יהיו פיצויים - אם בכלל. רק אל תשכח שגם הם ניזוקו, אף אחד לא עשה לך בכוונה... היתה להם תקלה שהשפיעה גם עליך. צריך לזכור - כל עוד הצד השני לא מרמה אותך, כמובן - שגם הצד השני בני אדם, וכדאי להתיחס אליהם כמו שהיית רוצה שייתחסו אליך לו חלילה היה קורה משהו.
לגבי הדקות, הם לא הבטיחו שקל, להיפך אמרו שעל זה לא יקבלו שקל, רק אם תכנס לתוכנית של הפרסומות אז בתנאים מסוימים תקבל משהו.
תכלס, אין לאן ללכת... בדקתי במתמחים.טופ ולא מצאו לי חלופה טובה, אתה מוזמן להוסיף שם חוות דעת אם יש לך. אתה יודע על איזה ניק מדובר.
-
RE: עזרה הגדרות קבלת נתוניםפורסם בעזרה הדדית למשתמשים מתקדמים
@BEN-ZION זה אומר שזה מופיע כבר בשורה הרביעית וזה מיותר
-
RE: עזרה בקודפורסם בפורום PHP
@121244 בד"כ הוא לא מקשקש אם מביאים לו תיעוד מלא כמו שהבאתי. אבל אם אתה מבין בזה וראית קשקושים, אז לא אתווכח.
-
RE: עזרה בקודפורסם בפורום PHP
יש לי כאן קוד שאמור לעלות קובץ php גדול ומשום מה זה מעלה רק חלק קטן ממנו (באמצע) ובלי שום תגובה מישהו יכול לעזור?
<?php // הגדרות קבועות (חובה לעדכן) $API_BASE_URL = "https://www.call2all.co.il/ym/api/"; $TOKEN = ""; // טוקן הגישה $REMOTE_FILE_URL = "-כאן צריך להשים את הכתובת (בכוונה שיניתי( "; // כתובת הקובץ המקורית $TARGET_PATH = "ivr2:/200/uploaded_file.mp3"; // נתיב היעד (חובה ivr2:) [3, 4] $MAX_FILE_SIZE_MB = 150; // הגבלה לגודל הקובץ $CHUNK_SIZE = 5 * 1024 * 1024; // 5MB למקטע (קטן מ-50MB המגבלה המקסימלית) [3, 4] // הגדרות קובץ מקומיות $QQUUID = uniqid('', true); // מזהה ID רנדומלי שיש ליצור לפני הבקשה הראשונה [5, 7] $TEMP_DIR = 'temp_uploads/'; $TEMP_FILE_PATH = $TEMP_DIR . basename($TARGET_PATH); $MAX_FILE_SIZE_BYTES = $MAX_FILE_SIZE_MB * 1024 * 1024; // פונקציית שליחת בקשת cURL (מותאם לשיטת POST multipart/form-data) function send_curl_request($url, $fields, $is_done_request = false) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if (!$is_done_request) { // שלב א': העלאת מקטע curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); } // שלב ב': בקשת חיבור (UploadFile?done) היא לרוב GET או POST עם פרמטרים ב-URL, // כאן נשתמש ב-GET אם הפרמטרים כבר ב-URL $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code != 200) { throw new Exception("HTTP Error {$http_code} | Response: " . $response); } return json_decode($response, true); } // 1. הורדת קובץ חיצונית ושמירה מקומית + בדיקת גודל if (!is_dir($TEMP_DIR)) { mkdir($TEMP_DIR, 0777, true); } if (!@file_put_contents($TEMP_FILE_PATH, @file_get_contents($REMOTE_FILE_URL))) { die("שגיאה בהורדה או שמירה מקומית של הקובץ."); } $file_size = filesize($TEMP_FILE_PATH); $file_name = basename($TEMP_FILE_PATH); if ($file_size > $MAX_FILE_SIZE_BYTES) { unlink($TEMP_FILE_PATH); die("הקובץ גדול מהמגבלה המוגדרת."); } // חישוב מקטעים $total_parts = ceil($file_size / $CHUNK_SIZE); $qq_total_parts_api = $total_parts + 1; // כולל בקשת החיבור (done) [5-8] // -------------------------------------------------- // שלב א': העלאת מקטעי הקובץ (Chunks) // -------------------------------------------------- $handle = fopen($TEMP_FILE_PATH, "r"); $chunk_index = 0; $byte_offset = 0; $upload_success = true; if ($handle) { while (!feof($handle)) { $chunk_data = fread($handle, $CHUNK_SIZE); $current_chunk_size = strlen($chunk_data); if ($current_chunk_size == 0) { break; } // יצירת קובץ זמני עבור המקטע הנוכחי (דרוש עבור cURL) $temp_chunk_file = $TEMP_DIR . "chunk_{$chunk_index}"; file_put_contents($temp_chunk_file, $chunk_data); // פרמטרים הנדרשים לבקשת העלאת מקטע [5, 7] $post_fields = [ 'token' => $TOKEN, 'path' => $TARGET_PATH, 'qquuid' => $QQUUID, 'qqpartindex' => $chunk_index, 'qqpartbyteoffset' => $byte_offset, 'qqchunksize' => $current_chunk_size, 'qqtotalparts' => $qq_total_parts_api, 'qqtotalfilesize' => $file_size, 'qqfilename' => $file_name, 'qqfile' => new CURLFile($temp_chunk_file, mime_content_type($temp_chunk_file), $file_name) // העלאת המקטע הנוכחי // ניתן להוסיף convertAudio, autoNumbering ו-tts כאן אם צריך [3-5, 7] ]; try { $response = send_curl_request($API_BASE_URL . 'UploadFile', $post_fields); if ($response['responseStatus'] !== 'OK') { $upload_success = false; break; } } catch (Exception $e) { $upload_success = false; break; } // מחיקת קובץ המקטע הזמני unlink($temp_chunk_file); $chunk_index++; $byte_offset += $current_chunk_size; } fclose($handle); } else { die("שגיאה: לא ניתן לקרוא את הקובץ המקומי."); } // -------------------------------------------------- // שלב ב': סיום העלאה ובקשת חיבור לקבצים // -------------------------------------------------- if ($upload_success) { // פרמטרים הנדרשים לבקשת החיבור [6, 8] $done_params = [ 'token' => $TOKEN, 'path' => $TARGET_PATH, 'qquuid' => $QQUUID, 'qqfilename' => $file_name, 'qqtotalfilesize' => $file_size, 'qqtotalparts' => $qq_total_parts_api, // אם הועברו convertAudio, autoNumbering, tts יש לצרף גם לכאן [6, 8] ]; $query_string = http_build_query($done_params); $done_url = $API_BASE_URL . "UploadFile?done&" . $query_string; try { // שליחת בקשה לחיבור הקטעים (UploadFile?done) $response_data = send_curl_request($done_url, null, true); if (isset($response_data['responseStatus']) && $response_data['responseStatus'] === 'OK') { // פעולת ה-API הושלמה בהצלחה // תוצאה: $response_data מכילה path ו-size [9, 10] } else { // שגיאה בחיבור הקבצים } } catch (Exception $e) { // שגיאה בבקשת החיבור } } else { // העלאת המקטעים נכשלה } // ניקוי הקובץ הזמני בשרת המקומי שלך if (file_exists($TEMP_FILE_PATH)) { unlink($TEMP_FILE_PATH); } ?>לא מבין בזה, אבל הgpt אומר שיש כמה טעויות.
-
RE: למי שעדיין לא חזר לו שלוחות ותכנים של המערכתפורסם בשאלות ועזרה הדדית
@מתעמק אני חושב שרק מי שזה לחוץ לו שיפנה, לי יש כמה מערכות שלא חזר עדיין ואני לא פונה כי אני בטוח שיש להם עומס ועדיף שיטפלו קוםד במה שחשוב יותר...
-
RE: שליחת צינתוקיםפורסם בעזרה הדדית למשתמשים מתקדמים
@פיתה כתב בשליחת צינתוקים:
@יודע-קצת
תוסיף את ההגדרות האלו בשלוחה 2record_end_run_tzintuk=yes list_tzintuk=members tzintuk_your_id=מספר המערכתכמובן במקום members צריך להכניס את שם רשימת הצינתוקים יש גם את זה
-
RE: חיסכון אוטומטי בדקותפורסם בעזרה הדדית למשתמשים מתקדמים
@נר-יצחק גם החברות משלמות על דקות, לכן החבילות הכשרות יותר יקרות יחסית, כי על אינטרנט לדוגמא יש להם 100% רווח מה שבכשר אין... ככה הבנתי לפחות... (אישתי עבדה עד לא מזמן בחברת סלולר גדולה מאוד).
-
RE: למעשה מה יהיה? התאפקנו כמה ימים!פורסם בשאלות ועזרה הדדית
@מתעמק אני מאמין שיש עדיפות לקוים שיש יותרנחיצות שיעלו מהר, כי אם יש מרכזיה של עסק ומנגד וואצאפ משפחתי, ברור מה יעלו קודם...
אל דאגה זה לא המייל הפרטי של שמואל, זה של העסק. ואם צריך הוא יודע לסנן... מצד שני לא צריך לחפור סתם, הם עובדים על זה, זו עבודה שלוקחת זמן.