שליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט
-
תגובה: מודל תור - שליחה לשרת חיצוני של סטטוס סיום הלקוח בתור
המערכת תשלח מיד לאחר יציאת לקוח מהתור את כל הפרטים שהיה בתור
אותם פרטים שנמצאים בקובץ LogQueueAll.ymgr
ערכי חובה
queue_api_send=yes
queue_api_link=abc.co.il
ברירת מחדל get ניתן לשנות שליחה לpost
queue_api_url_post=yesאני מנסה לעשות שישלח לגוגל סקריפט,
עשיתי פריסה, הכנסתי את הקישור, ומשום מה הוא לא מתחבר אשמח לעזרה בענין. -
@הללוהו הגדרת פונקציית doGet? הפריסה זמינה לכולם או רק לך?
-
@אביי-ורבא האם צריך להגדיר בפריסה ולשנות את 'סוג הפרויקט' ל"ניתן להפעלה דרך ממשק API"?
-
@הללוהו לא. זה צריך להיות אפליקציית אינטרנט, אבל לא ענית האם יש לך פונקציה מתאימה
-
@אביי-ורבא כן
function doPost(e)
ובמערכת הגדרתי ככה:
queue_api_send=yes queue_api_url_post=yes queue_api_link=https://script.google.com/macros/s/מזהה הפריסה/exec
-
@הללוהו ובלוג הפעלות של גוגל סקריפט מה מופיע?
-
@אביי-ורבא כתב בשליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט:
@הללוהו ובלוג הפעלות של גוגל סקריפט מה מופיע?
"נכשלה".
איני מבין בלוג.. -
@הללוהו אז זה לא הבעיה, זה מתחבר מצויין, יש לך שגיאה כלשהי בסקריפט, תנסה לדבג עם פרמטרים לדוגמה בהפעלה רגילה ותוכל לראות בדיוק איפה זה נתקע
-
@אביי-ורבא כתב בשליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט:
יש לך שגיאה כלשהי בסקריפט,
מצו"ב הסקריפט המלא :
function doPost(e) { try { // פרס את הנתונים שנשלחו בפורמט JSON Logger.log("מתחיל לעבד נתונים..."); var data = JSON.parse(e.postData.contents); Logger.log("נתונים שנקלטו: " + JSON.stringify(data)); // קבע את הגיליון שבו יוכנסו הנתונים var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("גיליון8"); // הכנס את התוכן שהתקבל לתא A12 - כדי שאדע אם התוכן בכלל מגיע - בינתיים זה לא עבד ולא נכנס לכאן כלום זה אומר שהתוכן משום מה לא הגיע ... sheet.getRange("A12").setValue(JSON.stringify(data)); // הפוך את הנתונים לשורה חדשה var newRow = []; var folderName = ""; // המרה של Folder למיקום טקסטי switch(data.Folder) { case "1": folderName = "פיצה"; break; case "2": folderName = "פלאפל"; break; default: folderName = "לא ידוע"; } // הוסף את הנתונים לשורה החדשה newRow.push(folderName); // עמודה A newRow.push(data.Phone); // עמודה B newRow.push(data.Date); // עמודה C newRow.push(data.Time); // עמודה D newRow.push(data.QueueStatus); // עמודה E newRow.push(data.AnswerNumber); // עמודה F newRow.push(data.QueueRecordPath); // עמודה G // הכנס את השורה החדשה לגיליון בשורה 2 sheet.insertRowBefore(2); sheet.getRange(2, 1, 1, newRow.length).setValues([newRow]); Logger.log("נתונים הוכנסו בהצלחה."); return ContentService.createTextOutput(JSON.stringify({ status: 'success' })); } catch (error) { Logger.log("שגיאה: " + error.message); return ContentService.createTextOutput(JSON.stringify({ status: 'error', message: error.message })); } }
@אביי-ורבא כתב בשליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט:
תנסה לדבג עם פרמטרים לדוגמה בהפעלה רגילה ותוכל לראות בדיוק איפה זה נתקע
כשניסתי להריץ אותו מגוגל סקריפט עצמו כך:
function testDoPost() { var e = { postData: { contents: JSON.stringify({ Phone: "123456789", Date: "2023-10-01", Time: "10:00", Folder: "1", QueueStatus: "נמצא בתור", AnswerNumber: "5", QueueRecordPath: "/path" }) } }; doPost(e); }
הוא עבד כמו שצריך.
@אביי-ורבא כתב בשליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט:
אז זה לא הבעיה, זה מתחבר מצויין,
בלוג אני רואה שהסקריפט מופעל בכל ניתוק שיחה, אבל בפועל שום דבר לא זז בשיטס.
-
@הללוהו אולי תנסה להוסיף את זה
Logger.log("e.postData: " + JSON.stringify(e.postData)); -
@הללוהו למיטב זכרוני השליחה מימות כpost לא שולחת את הנתונים במבנה json אלא כפרמטרים מופרדים ב& ו =
אגב, למה אתה לא שולח בget? -
@עידו כתב בשליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט:
@הללוהו אולי תנסה להוסיף את זה
Logger.log("e.postData: " + JSON.stringify(e.postData));בהרצה כאפליקציית אינטרנט לא ניתן לראות את הלוגים, אא"כ מקשרים לפרויקט בGCP, ואז ניתן לראות את הלוגים דרך שם,
-
@האדם-החושב כתב בשליחת הסטטוס בסיום לקוח בתור - לגוגל סקריפט:
למה שלא תשלח בget?
זה לא משנה, שפשוט יתקן את הקוד שלו בהתאם,
@הללוהו תשמור את כל postData לשדה בגוגל שיטס, ואז תראה את המבנה שבו זה מתקבל