שאלה בחיבור API מגוגל סקריפט
-
@מיכאלוש
ביצעתי בעבר כמה פרוייקטים מהסוג הזה של תקשור עם הקבצים של ימות.
אתה מנסה לממש המרה של קובץ ימות באמצעות js (שבזה משתמשים בגוגל סקריפט) לאובייקט מסוג json.
אם כן, אתה חייב שהפורמט של הקובץ בימות יהיה מתאים להמרה ל- json.
אם כן, הקובץ בסיומת HTML ודאי לא מתאים לך, כי אין שום קשר בינו לבין הפורמט של json
הקובץ בסיומת ymgr הוא מצויין, צריך לעשות בו התאמה מסויימת והוא יתאים לפורמט jsonאז ככה,
הפורמט של קובץ ymgr הוא:
key1#value1%key2#value2
key1#value1%key2#value2
כלומר: מפריד
#
בין הkey
לvalue
, מפריד%
בין ערך לערך, ומפריד של ירידת שורה בין רשומה לרשומה
הפורמט של json הוא
{key1:value1,key2:value2},{key1:value1,key2:value2}
כלומר: מפריד:
בין הkey
לvalue
, מפריד,
בין ערך לערך, וסוגריים מסולסלות{}
מקיפות כל איבר עם הפרדת,
.אם כן, אתה צריך לעשות החלפה של כל ה ה
#
ב:
, את כל ה%
ב,
ואת כל הירידת שורה ל},{
תוסיף את השורות האלו לקוד (החלפתי את הconst
לvar
, יותר נכון לכאורה)var download = UrlFetchApp.fetch(url + 'DownloadFile?' + token + path + name); download = '[{"' + download; download = download.replace(/#/g, '":"'); download = download.replace(/%/g, '","'); download = download.replace(/\n/g, '"},{"'); download = download + '"}]'; var file = JSON.parse(download);
מה שקיבלת כרגע זה את כל הקובץ באובייקט json במבנה של מערך המכיל את כל השורות, כאשר כל שורה מחולקת לאיברים של key ו value
כעת כדי לגשת לערך כל שהוא בקובץ את צריך לציין מספר שורה ו key או לחילופין לרוץ על כל המערך.
לדוגמא:var folder = file[0]["Folder]; var P050 = file[0]["P050"];
או
for (r=0;r<file.length;r++){ Logger.log(file[r]["Folder"]); }
לגבי שמות הקבצים,
לכאורה אתה חייב את השם המלא, אבל לשם מה אתה צריך את הקבצים מהתיקיה ההיא? -
@amp-Software-0
יש ws מיוחד שממיר קבצי ymgr לjsonhttps://call2all.co.il/ym/api/renderFile?wath=ivr2:OK/ApprovalAll.ymgr&convertType=json&token=****
-
@eliyahu לא ידעתי על זה.
זה באמת כלי מצויין
איפה התיעוד של זה? -
@eliyahu אמר בשאלה בחיבור API מגוגל סקריפט:
@amp-Software-0
יש ws מיוחד שממיר קבצי ymgr לjsonhttps://call2all.co.il/ym/api/renderFile?wath=ivr2:OK/ApprovalAll.ymgr&convertType=json&token=****
זה עוזר מאוד! איפה כל הדברים האלה מתועדים?
-
@eliyahu למה אין את זה בתיעוד??? 7ממה למה עוד אפשר להמיר שם?
-
-
@eliyahu
חבל באמת שאין תיעוד לזה..
היה לי מחשבה בעבר ליצור api להמרת קבצי ymgr לפורמטים שונים
זה דבר מאוד נצרך! -
@amp-Software-0 אמר בשאלה בחיבור API מגוגל סקריפט:
(החלפתי את ה const ל var, יותר נכון לכאורה)
אם אתה מגיע מעולם ה JavaScript של 2013 אתה צודק.
כיום זה חד משמעית לא נכון בשום צורה. -
@שמואל מה הפירוש? אם הייתי משתמש עם const לא הייתי יכול להגדיר אותו מחדש
?? -
@amp-Software-0 על
let
שמעת?
נ.ב.replace
מחליף רק פעם אחת. בשביל להחליף יותר מפעם אחת צריך להשתמש בreplaceAll
אבל כמובן כל זה לא רלוונטי למעשה, כיוון שיש API מוכן לזה. -
@avrham אמר בשאלה בחיבור API מגוגל סקריפט:
ממה למה עוד אפשר להמיר שם?
@eliyahu אמר בשאלה בחיבור API מגוגל סקריפט:
@avrham אמר בשאלה בחיבור API מגוגל סקריפט:
למה עוד אפשר להמיר שם
csv
htmlלמה = json, html , csv
ממה = ymgr -
@צדיק-תמים
נכון, אפשרי גם let (רק שיש לו הגבלות בנוגע לתחום ההצהרה שלו, אז יותר פשוט ה var)
בכל מקרה זה לא נוגע לדיון המקורי..
לגבי ה replace השתמשתי עם ביטוי רגלורלי (g) זה מחליף את הכל
תבדוק -
@amp-Software-0 אמר בשאלה בחיבור API מגוגל סקריפט:
נכון, אפשרי גם let (רק שיש לו הגבלות בנוגע לתחום ההצהרה שלו, אז יותר פשוט ה var)
הגבלות מועילות מאוד, הצהרה חוצת סקופים היא דבר רע שעלול לגרום להתנהגות לא צפויה
לא סתם הוסיפו את זה לשפה -
@eliyahu אמר בשאלה בחיבור API מגוגל סקריפט:
יש ws מיוחד שממיר קבצי ymgr לjson
https://call2all.co.il/ym/api/renderFile?wath=ivr2:OK/ApprovalAll.ymgr&convertType=json&token=****
מה פירוש השגיאה שמופיעה לי ?
{ "responseStatus":"Exception", "message":"wath is required", "file":"renderFile.ym", "Line":"12:19", "yALogsVersion":"1.0.7" }
@amp-Software-0 אמר בשאלה בחיבור API מגוגל סקריפט:
אבל לשם מה אתה צריך את הקבצים מהתיקיה ההיא?
למניעת כפילויות חשבתי אולי להשתמש בקבצים שבתיקייה הזאת שבהם אחרי שקיבלתי את הנתונים אני יכול למחוק את הקבצים למניעת כפילויות
אבל אם זה לא אפשרי ללא שם מלא של הקובץ אני ישתמש בקבצים שבתיקייה הראשית ואצטרך למצוא פתרון אחר למניעת כפילויות -
@מיכאלוש אמר בשאלה בחיבור API מגוגל סקריפט:
מה פירוש השגיאה שמופיעה לי ?
כתוב בהודעה שחסר את פרמטר wath
-
@eliyahu אולי לא מילאתי אותו נכון ?
איך ממלאים אותו כך ?https://call2all.co.il/ym/api/renderFile?wath=ivr2/1:OK/ApprovalOk.ymgr&convertType=json&token=0733******:123456
-
-
@שמחה-זו-הסיסמא השגיאה עדיין מופיעה לי
{"responseStatus":"Exception","message":"Error retrieving file path information","file":"renderFile.ym","Line":"20:19","yALogsVersion":"1.0.7"}
מה לא נכון בצורה שהגדרתי את הנתיב לקובץ ?
הקובץ נמצא בשלוחה 1 וזה השם המלא שלו ?wath=ivr2:1:OK/ApprovalOk.ymgr
-
@מיכאלוש
ivr2:1/1/ApprovalOk.ymgr
שים לב שבנתיב שתכתוב אכן מופיע קובץ כזה -
@שמחה-זו-הסיסמא תודה רבה עובד מצויין