מדריך | שמיעת המיילים בטלפון + צינתוק
-
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
תמחק את שורה 65 בקוד שעשיתי
אבל זה משמיע דואר נכנס! (או שזה עובד שכל מה שבתווית עולה?)
לא הבנתי מה את מתכוון
אם אתה מתכוון להגיד ששורה 65 משמיעה את הדואר הנכנס אז זה לא נכון זה שולח צינתוק (שורה 64 שולחת את הטקסט של המייל)@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@מנצפכ @אביי @שאול-נ-י באיזה שפה כותבים את הקודים? אפשר לכתוב ב PHP? ואיפה אני יכול ללמוד עוד על השימוש בסקריפט של גוגל ואיך משתמשים איתו?
זה על בסיס JavaScript עם תוספות של פקודות מגוגל
איפה אפשר ללמוד על הפקודות האלה?
-
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@מנצפכ הכוונתי שאני רוצה לעשות שלוחה שתשמיע דואר יוצא
תעשה שתי קבצים כאלה
לאחד תעשה תווית של דואר נכנס ולשני תעשה תגית של דואר יוצא
בחיפוש במייל תעשה דואר נכנס במקום דואר יוצא
(בעיקרון אפשר שתי פונקציות אבל נראה לי שזה יסבך) -
תקלות מצויות
- לבדוק שהוספתם תווית במייל והגדרתם שיעבור לשם הדואר הנכנס
- לבדוק שהקוד תקין א. מספר מערכת וסיסמא ב. שם התווית ג. מספר רשימת הצינתוקים
- לבדוק שיש טריגר מופעל
- לבדוק שאישרתם גישה לגוגל
- לבדוק שמספר הפלאפון נמצא ברשימת הצינתוקים
ובכל פעם שמעלים בעיה כדאי להעלות את הקוד (בלי המספר מערכת והסיסמא) ולכתוב אם הבעיה בהפעלה, בשמיעה של המייל או בצינתוק ואם הבעיה בהפעלה להעתיק את השגיאה
:::
@אברהם-צבי אני לא פנוי כרגע לעבוד על זה אני מקווה שעזרתי לך
:::
-
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
תקלות מצויות
- לבדוק שהוספתם תווית במייל והגדרתם שיעבור לשם הדואר הנכנס
- לבדוק שהקוד תקין א. מספר מערכת וסיסמא ב. שם התווית ג. מספר רשימת הצינתוקים ד. סוג השרת
- לבדוק שיש טריגר מופעל
- לבדוק שאישרתם גישה לגוגל
- לבדוק שמספר הפלאפון נמצא ברשימת הצינתוקים
ובכל פעם שמעלים בעיה כדאי להעלות את הקוד (בלי המספר מערכת והסיסמא) ולכתוב אם הבעיה בשמיעה של המייל או בצינתוק
:::
@אברהם-צבי אני לא פנוי כרגע לעבוד על זה אני מקווה שעזרתי לך
:::
יתכן גם בעיה שברשימת הצינטוקים יש פחות מ 2 רשומים ולכן הוא מפעיל את הצינטוק.
-
-
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
יתכן גם בעיה שברשימת הצינטוקים יש פחות מ 2 רשומים ולכן הוא מפעיל את הצינטוק.
מה הכוונה?
אני לא נודע אם את מתמצא במערכות ימות המשיח, אבל בשביל להפעיל צינטוק לרשימת צינטוקים חינמיים חובה שיהיה ברשימה מעל 2 מספרים, אחרת הצינטוק לא יופעל.
-
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
יתכן גם בעיה שברשימת הצינטוקים יש פחות מ 2 רשומים ולכן הוא מפעיל את הצינטוק.
מה הכוונה?
אני לא נודע אם את מתמצא במערכות ימות המשיח, אבל בשביל להפעיל צינטוק לרשימת צינטוקים חינמיים חובה שיהיה ברשימה מעל 2 מספרים, אחרת הצינטוק לא יופעל.
לא נכון, מניסיון !!!
-
בגלל כמה בעיות בקוד של @אביי ערכתי את הקוד של @שאול-נ-י שיתן רק 2200 תווים
function mailToPhone() { // משתנים לעריכת המשתמש const number = '**********' // :מספר המערכת const pass = '******' // :סיסמא const tag = 'ToPhone' // :שם התווית const extension = '1' // :מס' השלוחה להשמעה const tzl = '123' // :מספר רשימת צינתוקים const server = 'private' // :שרת 'www' לשרת רגיל 'private' לשרת פרייוט // עד כאן משתנים לעריכת המשתמש // משתנים לניסוח const cnsender = 'הודעה מאת' const cnsubject = ',נושא,' const cnbody = 'גוף ההודעה' const cnend = 'סוף ההודעה' // עד כאן משתנים לניסוח const url = ('https://' + server + '.call2all.co.il/ym/api/'); const token = (number + ':' + pass); const path = ('ivr2:' + extension + '/'); const listTzintuk = ('tzl:' + tzl); const label = GmailApp.getUserLabelByName(tag); let didUpload = false chechForGmails() function chechForGmails() { const threads = GmailApp.search('label:' + tag); for (const thread of threads) { const messages = thread.getMessages(); const minuteAgo = new Date(Date.now() - 60000); if (thread.getLastMessageDate() > minuteAgo) { for (const message of messages) { if (message.getDate() > minuteAgo) { const result = sendToYemot(message); didUpload = result || didUpload; } } thread.removeLabel(label); } else { const result = sendToYemot(messages[messages.length - 1]); didUpload = result || didUpload; thread.removeLabel(label); } } if(didUpload === true){ const tzintuk = UrlFetchApp.fetch(`${url}RunTzintuk?token=${token}&phones=${listTzintuk}`); Logger.log(tzintuk) } } function sendToYemot (message) { body = message.getPlainBody() body = body.replace(/\s{2,}/g, ' ') body = body.substring(0,2200) + cnend body = body.replace(new RegExp(`"|>|<`, 'g',), '') const ttsString = `${cnsender}. ${message.getFrom()}. ${cnsubject}. ${message.getSubject()}. ${cnbody}. ${body}`; Logger.log({ ttsString }); const directoryListing = JSON.parse(UrlFetchApp.fetch(`${url}GetIVR2Dir?token=${token}&path=${path}`)); Logger.log(directoryListing) if (directoryListing.responseStatus === 'OK') { const lastFileName = directoryListing.files .filter(file => file.fileType === 'AUDIO' || file.fileType === 'TTS') .map(file => file.name.split('.')[0]) .find(fileName => !isNaN(fileName)); const newFileNumber = Number(lastFileName || -1) + 1; const newFileName = newFileNumber.toString().padStart(3, '0'); const newFilePath = `${path}${newFileName}.tts`; const payload = { token, what: newFilePath, contents: ttsString }; const uploadResult = JSON.parse(UrlFetchApp.fetch(url + 'UploadTextFile?', { payload })); return uploadResult.responseStatus === 'OK'; } } }