@AYY ההגדרה הנכונה היא
id_list_message_end_goto=/1/1
כמו כן תוכל בסיום כל ההודעה לשרשר g - כדי שיעבור לשלוחה מסויימת.
@AYY ההגדרה הנכונה היא
id_list_message_end_goto=/1/1
כמו כן תוכל בסיום כל ההודעה לשרשר g - כדי שיעבור לשלוחה מסויימת.
@nhfk-sbhtk אולי תנסה לעדכן את הקוד שלך ככה
function doGet(e) {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var params = (e && e.parameter) ? e.parameter : {};
var phone = params.ApiPhone || '';
var extension = params.ApiExtension || '';
var what = params.what || '';
var apiTime = params.ApiTime || Math.floor(Date.now() / 1000);
var nextFileResponse = "";
if (what !== "" && extension !== "") {
var parts = what.split('/');
var fileNameWithExt = parts[parts.length - 1];
var currentFileNumber = parseInt(fileNameWithExt.replace('.wav', ''));
if (!isNaN(currentFileNumber)) {
var nextFileNumber = currentFileNumber + 1;
var folderPath = extension.startsWith('/') ? extension : '/' + extension;
nextFileResponse = "go_to_folder_and_play=" + folderPath + "," + nextFileNumber;
}
}
var dateObj = new Date(apiTime * 1000);
var rowData = [
Utilities.formatDate(dateObj, "Asia/Jerusalem", "dd/MM/yyyy"),
Utilities.formatDate(dateObj, "Asia/Jerusalem", "HH:mm:ss"),
phone,
extension,
"", // משך זמן (לא פעיל כרגע)
what
];
sheet.appendRow(rowData);
var finalOutput = nextFileResponse || "id_list_message=t-לא נמצא קובץ תקין";
return ContentService.createTextOutput(finalOutput)
.setMimeType(ContentService.MimeType.TEXT);
} catch (error) {
return ContentService.createTextOutput("id_list_message=t-שגיאה כללית")
.setMimeType(ContentService.MimeType.TEXT);
}
}
תעשה פריסה מחדש.
זה אמור לשלוח אותך לקובץ הבא (לגבי משך זמן לא מצאתי פתרון כעת)
@CUBASE אבל זה לא מדוייק.
כי נניח ששמעתי קובץ 013
אז זה תלוי מה הגדרתי בשלוחת ההשמעה, אם הוא ישמע בסדר עולה או בסדר יורד.
כי אם זה בסדר עולה, אני יכול לכוון בקוד שייקח את הקובץ מפרמטר what +1.
ואם זה בסדר יורד, אני יכול לעשות -1.
אבל איך אני יכול לכתוב קוד שיטפל ב2 הצורות (כמובן, שאפשר תמיד לבדוק מה כתוב start בקובץ exe. - אבל אני מדבר בדרך המלך)
אם מגדרים פניה לשרת לאחר שמיעת כל קובץ
after_play=send_to_api
הפרמטר PlayStop מגיע -1 (מכיוון שזה בסיום הקובץ).
האם יש דרך לקבל את זה כמו אילו היה מוגדר בהפניה לפי מקש
control_playX=send_api
שאז הפרמטר PlayStop מגיע עם מיקום עצירה של המאזין?
כמו כן, בהפניה לפי מקש כתוב
במענה noop, או כאשר אין מענה תקין מהשרת המערכת חוזרת להשמיע את הקובץ מהמקום בו אחז
ואילו בהפניה לאחר כל קובץ, כתוב
במענה noop, או כאשר אין מענה תקין מהשרת המערכת חוזרת להשמיע את הקובץ לפי מה שמוגדר בשלוחה start
מה שקורה, כי בהפניה לאחר כל קובץ זה חוזר בחזרה לשלוחה קודמת.
האם יש דרך שהמאזין יוכל להמשיך את הקובץ הבא לאחר הפנייה לשרת?
@nhfk-sbhtk אני הייתי מעדיף לראות שזה עובד פרפקט, אחרת תצטרך לשנות את כל ההגדרות של השלוחה.
@nhfk-sbhtk אוקיי (נראה בעיקרון זה מגיע עם ערך -1, שזה אומר שהוא שמע את כל הקובץ).
בכל אופן יש דרך לחשב את זה, אבל זה דורש הרבה מחשבה, לחשב את אורך ההשמעה וכו'...
מה שכן, אני חושב ש @cubase עשה משהו נפלא באמצעות שליחת API אחרי כל קובץ.
אולי הוא יודע איך לכוון את המאזין לקובץ הבא - בפרט שאתה הגדרת start=min.
כמובן, אני חושב שאפשר גם כי המקש שמיועד להעביר את הקובץ (לדוגמא 8 ) יכולים להגדיר שיישלח API, ואז בפרמטר PlayStop מגיע זמן ההשמעה - לא בדקתי!
@nhfk-sbhtk תוכל לכתוב לי מה הערך של הפרמטר PlayStop שקיבלת?
מה מופיע שם?
@nhfk-sbhtk תנסה רגע ככה
function doGet(e) {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var params = (e && e.parameter) ? e.parameter : {};
var phone = params.ApiPhone || '';
var extension = params.ApiExtension || '';
var callId = params.ApiCallId || '';
var fileName = params.what || '';
var playStop = params.PlayStop || '';
var apiTime = params.ApiTime || Math.floor(Date.now() / 1000);
var dateObj = new Date(apiTime * 1000);
var dateString = Utilities.formatDate(dateObj, "Asia/Jerusalem", "dd/MM/yyyy");
var timeString = Utilities.formatDate(dateObj, "Asia/Jerusalem", "HH:mm:ss");
// סידור השורה בגיליון: תאריך | שעה | טלפון | שלוחה | משך זמן (כרגע לא פעיל) | שם קובץ
var rowData = [
dateString,
timeString,
phone,
extension,
"",
fileName
];
sheet.appendRow(rowData);
return ContentService.createTextOutput("בוצעה בהצלחה")
.setMimeType(ContentService.MimeType.TEXT);
} catch (error) {
return ContentService.createTextOutput("שגיאה מהשרת")
.setMimeType(ContentService.MimeType.TEXT);
}
}
כמובן תעשה שוב פריסה חדשה (כנ"ל)
ותכניס את הקישור החדש בשלוחה.
תעדכן איך זה נראה.
@nhfk-sbhtk נראה לי שאתה יכול להקיש 8 (או מקש אחר) כדי לעבור את הקובץ. אבל צריך לעבור אותו.
@nhfk-sbhtk זה אמור להיות כך (אם אני לא טועה)
type=playfile
start=min
last_play_auto=yes
max_recording_length=10800
say_current=yes
after_play=send_to_api
api_link=https://gesher.onrender.com/
api_add_0=URL_GESHER=הקישור שיש לך עכשיו
api_hangup_send=no
@nhfk-sbhtk מעולה עכשיו בשלוחה המקורית שלך של ההשמעות תכניס את הקישור החדש.
לאחר שמיעת קובץ יישלח פרמטרים (עדיין לא אמור לרשום את זה בדוח - רק רוצה לבדוק איזה פרמטרים מגיע מהשלוחה ההיא)
ותעתיק את הפרמטרים שם.
@nhfk-sbhtk תוכל להעתיק את הפרמטרים שנשלחו?
לא תמונה - וללא פרטי מזהים
@nhfk-sbhtk תתקשר.
זה נראה שעדיין לא התקשרת.
@nhfk-sbhtk זה בסדר.
תקיש על advanced ותאשר אחרי זה.
@nhfk-sbhtk בחירת סוג אפליקציית אינטרנט.
למי יש גישה מוכרח להיות כתוב לכולם

לגבי ההרשאות תקיש על advanced ותאשר אחרי זה.
@nhfk-sbhtk כדי שאהיה ברור.
@nhfk-sbhtk סליחה שאני משגע אותך.
בא נעשה משהו אחר.
במקום שיכתבו לוג.
נכתוב את הפרמטרים בגוגל שיטס.
תפתח גוגל שיטס חדש
בתוספים תוסיף סקריפט
תכניס בסקריפט את זה
function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var allParams = (e && e.parameter) ? JSON.stringify(e.parameter) : "No parameters";
var now = new Date();
var dateString = Utilities.formatDate(now, "Asia/Jerusalem", "dd/MM/yyyy HH:mm:ss");
sheet.appendRow([dateString, "LOG_TEST", "", "", "", allParams]);
return ContentService.createTextOutput("לוג לגליון");
}
תשמור
תעשה פריסה / הרשאות
תכניס בשלוחה
type=api
api_link=https://gesher.onrender.com/
api_add_0=URL_GESHER=הקישור שלך
api_hangup_send=no
ותבדוק אם כתוב משהו בגיליון
@nhfk-sbhtk ברור!
אין פרמטרים כשמריצים ידנית.