שלוחת API, מעבר לשלוחה דינאמית ע"מ למנוע התנגשויות
-
שלום רב לכולם!
יש לי קו שהגדרתי שם שלוחה שאני מקיש מספר כלשהו, לדוגמא "1", והשרת מכניס את המספר שהוקש לתוך קובץ TTS בשלוחה אחרת, ניסיתי להתקשר משני טלפונים בו זמנית ומכל טלפון הזנתי ערך אחר, מה שקרה זה שהשליחה השניה דרסה את הראשונה, ובשני הטלפונים שמעתי את הערך שחזר כשהם אחידים.
אז מה הבעיה?
אני רוצה שמשתמש יוכל להזין פרמטר מסויים והשרת יתן לו את הנתונים "שלו" עפ"י הפרמטר שהוקש, מה שקורה שאם שני משתמשים ישתמשו עם השלוחה הזו בבת אחת, אחד מהם יוכל לשמוע נתונים הקשורים למשתמש אחר
מה הפתרון?הנה הקודים:
בשלוחה בימות:type=api api_link=https://script.google.com/macros/s/.../exec api_000=input,yes,10,1,7,Digits,no,no api_end_goto=/0/9/1בגוגל סקריפט:
function doGet(e) { const params = (e && e.parameter) ? e.parameter : {}; const input = params.input || ""; const responseText = getRentalData(input); // העלאת ה-TTS לשלוחה היעד try { UrlFetchApp.fetch("https://call2all.co.il/ym/api/UploadTextFile", { method: "post", payload: { token: "לכאן הכנסתי את הטוקן", what: "ivr2:/0/9/1/000.tts", contents: responseText }, muteHttpExceptions: true }); } catch (err) { MailApp.sendEmail("example@gmail.com", "שגיאה בשליחה", String(err)); } // תגובה לימות: מעבר לשלוחה return ContentService .createTextOutput(responseText) .setMimeType(ContentService.MimeType.TEXT); } -
@Yossef-Kaufman כתב בשלוחת API, מעבר לשלוחה דינאמית ע"מ למנוע התנגשויות:
שלום רב לכולם!
יש לי קו שהגדרתי שם שלוחה שאני מקיש מספר כלשהו, לדוגמא "1", והשרת מכניס את המספר שהוקש לתוך קובץ TTS בשלוחה אחרת, ניסיתי להתקשר משני טלפונים בו זמנית ומכל טלפון הזנתי ערך אחר, מה שקרה זה שהשליחה השניה דרסה את הראשונה, ובשני הטלפונים שמעתי את הערך שחזר כשהם אחידים.
אז מה הבעיה?
אני רוצה שמשתמש יוכל להזין פרמטר מסויים והשרת יתן לו את הנתונים "שלו" עפ"י הפרמטר שהוקש, מה שקורה שאם שני משתמשים ישתמשו עם השלוחה הזו בבת אחת, אחד מהם יוכל לשמוע נתונים הקשורים למשתמש אחר
מה הפתרון?הנה הקודים:
בשלוחה בימות:type=api api_link=https://script.google.com/macros/s/.../exec api_000=input,yes,10,1,7,Digits,no,no api_end_goto=/0/9/1בגוגל סקריפט:
function doGet(e) { const params = (e && e.parameter) ? e.parameter : {}; const input = params.input || ""; const responseText = getRentalData(input); // העלאת ה-TTS לשלוחה היעד try { UrlFetchApp.fetch("https://call2all.co.il/ym/api/UploadTextFile", { method: "post", payload: { token: "לכאן הכנסתי את הטוקן", what: "ivr2:/0/9/1/000.tts", contents: responseText }, muteHttpExceptions: true }); } catch (err) { MailApp.sendEmail("example@gmail.com", "שגיאה בשליחה", String(err)); } // תגובה לימות: מעבר לשלוחה return ContentService .createTextOutput(responseText) .setMimeType(ContentService.MimeType.TEXT); } -
@יהודה-צ-כ
לא כ"כ עוזר לי
מפני שיתכן ששנינו מתקשרים, הגוגל סקריפט מעדכן את שלי ראשון ואת שלך אחרון (ואז הנתונים שלי נדרסו)
ואז אני עובר ראשון לשלוחה בה אני יכול לשמוע את התגובה מהשרת, ואתה לא יכול לעבור (אם אני מגדיר go_to_folder_count=1)
ואז אני אשמע את הנתונים שלך... -
@Yossef-Kaufman כתב בשלוחת API, מעבר לשלוחה דינאמית ע"מ למנוע התנגשויות:
@יהודה-צ-כ
לא כ"כ עוזר לי
מפני שיתכן ששנינו מתקשרים, הגוגל סקריפט מעדכן את שלי ראשון ואת שלך אחרון (ואז הנתונים שלי נדרסו)
ואז אני עובר ראשון לשלוחה בה אני יכול לשמוע את התגובה מהשרת, ואתה לא יכול לעבור (אם אני מגדיר go_to_folder_count=1)
ואז אני אשמע את הנתונים שלך...תעשה שההגבלה תהיה תקפה גם לגבי הכניסה לשלוחה של שמיעת התגובה, ותעשה שאם שניים יחייגו ביחד, השני יעבור לשלוחה שלישית.
-
@יהודה-צ-כ
כלומר, לחסום את המשתמש השני מלכתחילה מלהזין נתונים? -
@Yossef-Kaufman כתב בשלוחת API, מעבר לשלוחה דינאמית ע"מ למנוע התנגשויות:
@יהודה-צ-כ
כלומר, לחסום את המשתמש השני מלכתחילה מלהזין נתונים?בדיוק, ואם מדובר במערכת גדולה תכפיל את השלוחה, לפי רמת הנורמלי שיתקשרו בו זמנית.
(כמובן שתכפיל גם את הסקריפט ושישלח לשלוחות שונות) -
@יהודה-צ-כ
מה הפקודה שמגבילה את כמות המשתמשים? -
@Yossef-Kaufman כתב בשלוחת API, מעבר לשלוחה דינאמית ע"מ למנוע התנגשויות:
@יהודה-צ-כ
מה הפקודה שמגבילה את כמות המשתמשים?אתה צריך לפתוח שלוחה בפני עצמה, שתפנה לשלוחה אחת כשיש פחות מהמותר, ולשלוחה אחרת כשיש יותר מהמותר.
שמתי קישור כמה פוסטים למעלה. -
@יהודה-צ-כ
(כך אכן עשיתי וזה עובד יופי, אך אם אני עובר לשלוחה הרצויה זה לא מקריא לי את מה שהקלטתי שם "אנא הקש את הקוד")
הסתדר...נ.ב. הלוואי ויכלתי לעשות לך לייק... עזרתי לי מאוד