לתועלת הציבור | סקריפט שמעלה נתונים מגוגל שיטס לlistallinformation
-
@זרח
איך אני מקשר בין הסקריפט לשיטס??
כל כמה זמן הרענון?? -
@אדם
הרענון לא מומלץ באופן אוטומטי.
אלא צריך להוסיף כפתור, ולקשר אותו לסקריפט.
אני רואה שיש בזה התעניינות אז בהמשך בל"נ אפרט יותר אשתדל להוסיף צילומי מסך. -
@אדם
הנה, זה ממש פשוט.
חלק א'
נכנסים בשיטס ל: תוספים> Apps Script
לוחצים על ה+ של קבצים ומוסיפים סקריפט. (קוראים לו שם אפשר בעברית) דוגמה למעלה.
מוחקים את 4 השורות. מעתיקים מכאן את הקוד ומדביקים במקומם.
מזינים את הנתונים המתאימים: טוקן (שזה מערכת:סיסמה), שם הגליון (בשיטס שממנו צריך להעלות נתונים), טווח (בתוך הגליון - ברירת מחדל מתחיל מA3 עד G)
ולוחצים על שמירה:
חלק ב'
חוזרים לשיטס עצמו
העמודה A אמורה להיות מספר טלפון או כל זיהוי, העמודה B אמורה להיות תמיד סיפרה 1 (אחרת ימות מזהה אותו כלא פעיל) ואח"כ איזה נתונים שבא לכם שיעלו.
שימו לב!
הסקריפט גורס את הרשימה הישנה
הוא אינו מוסיף אלא מוחק...
עכשיו יוצרים כפתור: "העלאה לימות"
לוחצים למעלה הוספה > שירטוט
מעצבים כפתור, ואח"כ שמירה וסגירה.
לדוגמה:
עכשיו הוא יופיע ע"ג השיטס.
מקמו אותו, ואז לחצו מקש ימני בעכבר, לחצו הקצאת סקריפט
הזינו את שם הסקריפט (המדויק - במקרה שלנו זה: sendDataToAPI), ושימרו.
זהו!
זה אמור לעבוד -
זה אמור לעבוד
אלא שרוב מוחלט של קריאות API לימות מגוגל שיטס ללא טוקן אמיתי [זאת אומרת כשמשתמשים בטוקן שמורכב ממערכת :סיסמה] לא מתקבלות כידוע
-
@מנסה
אממ... לא הייתי אומר רוב.
העובדה היא שאני משתמש בסקריפטים כמה חודשים רצוף, בלי תקלות ב"ה.
בכל אופן, הייתי מאד שמח (אני מדבר גם בשם הציבור)
אם היה כאן מדריך מסודר, איך להתגבר על הבעיה שהצגת.
יש כמה פוסטים שמזכירים את הנושא, אבל הדברים ממש מעורפלים.
באחד הפוסטים שלי, איזה צדיק שלח לי קוד עבור שימוש ב make, אבל לצערי לא מספיק הבנתי אותו. והוא לא הגיב אחר כך.
בברכה, זרח. -
נזכרתי, זה היה @צביקה
הלואי שהוא יעזור... -
@זרח
האם יש סקריפט הפוך ? כדי למשוך הנתונים לגוגל שיטס?
נסיתי לחפש בפורם ולא מצאתי -
@זרח
א. כיצד אני אמור לרשום את הטווח בשורה 3? (אם נניח יש לי בטבלה עמודות A-D שורות 1-35, איך אני אמור לרשום? 'A1:D1' / 'A1:D35' / 'A:D')?ב. אם אני מכניס בעמודה 1 מספרי תעודות זהות, ואני לא צריך שיוסיף 0 לפני המספר, (לא סתם 'לא צריך', לכאורה זה אמור להפריע),
אשמח שתכוון אותי איזה שורה בסקריפט אני אמור לשנות, (או יותר טוב שתתן לי כאן את השורה המתוקנת, וכמובן תכתוב לי איזה שורה זה..).בתודה גדולה מאד..
-
@חיים-הרשקוביץ כתב בלתועלת הציבור | סקריפט שמעלה נתונים מגוגל שיטס לlistallinformation:
@זרח
האם יש סקריפט הפוך ? כדי למשוך הנתונים לגוגל שיטס?
נסיתי לחפש בפורם ולא מצאתיתכתוב בתא A1
=IMPORTDATA("https://www.call2all.co.il/ym/api/DownloadFile?token=074XXXXXX:XXXX&path=ivr2:EnterID/ListAllInformation.ini")
כמובן במקום ה XX תכתוב מערכת וסיסמה וכמובן אתה יכול לשנות את מיקום הקובץ באם צריך
-
@צצ כתב בלתועלת הציבור | סקריפט שמעלה נתונים מגוגל שיטס לlistallinformation:
ב. אם אני מכניס בעמודה 1 מספרי תעודות זהות, ואני לא צריך שיוסיף 0 לפני המספר, (לא סתם 'לא צריך', לכאורה זה אמור להפריע),
אשמח שתכוון אותי איזה שורה בסקריפט אני אמור לשנות, (או יותר טוב שתתן לי כאן את השורה המתוקנת, וכמובן תכתוב לי איזה שורה זה..).בעיקרון שורה 21 מוסיפה את ה 0 אבל יכול להיות שתצטרך למחוק גם שורה קודם ושורה אחרי.
-
@צצ
א.אתה לא צריך להגדיר את הסוף, ברגע שהוא מגיע לשורה ריקה הוא עוצר. (ז''א A:D)
ב. אתה צודק. הוא תמיד מוסיף 0. אני אשתדל להנחות בהמשך איזה חלק מיותר בסקריפט, בהמשך בלנ''ד. -
-
@צצ
אין מה לחשוש מלנסות...
אחה''צ אוכל לבדוק בוודאות בעז''ה. -
@צצ
להלן קוד בלי 0 בהתחלה:function sendDataToAPI() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('לומדים'); var dataRange = sheet.getRange('A3:G'); // טווח תאים מעמודה A עד G מהשורה השלישית והלאה var dataValues = dataRange.getValues(); var apiEndpoint = 'https://private.call2all.co.il/ym/api/'; var apiToken = 'YOUR_API_TOKEN_HERE'; var combinedData = ''; for (var i = 0; i < dataValues.length; i++) { var row = dataValues[i]; if (row.join('').trim() === '') { // בדיקה שהשורה לא ריקה break; // עצירת הלולאה אם השורה ריקה } combinedData += row.join(',') + '\n'; // שרשור כל הנתונים לשורה אחת ושורה לעבר הבאה } var data = { 'token': apiToken, 'what': 'ivr2:EnterID/ListAllInformation.ini', 'contents': combinedData }; var response = UrlFetchApp.fetch(apiEndpoint + 'UploadTextFile', { 'method': 'post', 'payload': data }); Logger.log(response.getContentText()); }
-
@זרח
מה הפשט בזה ששורות 6-7 אינם תואמות בקוד הראשון (עם הוספת 0) ובקוד השני (ללא הוספת 0)?
אין הבדל? שניהם עובדים אותו דבר? -
@זרח ???
-
@ע-ג
סליחה,
בשורה 6 זה לפי שרת פרייוט (זה מה שיש אצלי)
ובדרך כלל זה השרת הרגיל, ולכן למחוק את המילה פרייוט ולכתוב WWW במקום (כמו בקוד הראשון)
בשורה 7 כתוב באנגלית "טוקן הAPI שלך כאן"
כלומר לכתוב את הטוקן: מערכת:סיסמה כנ"ל -
@זרח
זה לא רק העניין של הפרייוט,
הסוף של השורה בקוד הראשון הוא:/ym/api/UploadTextFile';
ובקוד השני הוא:
/ym/api/';
מה נכון?
-
@זרח
אתה יכול לעשות יצירת עותק ? -
@ע-ג
שתיהם נכונים.
הקודים נבנו בזמנים שונים, והגיוני שיש הבדלים קלים.
בסופו של דבר הפקודה שנשלחת לימות, תהיה זהה.
בכל אופן, שני הקודים נבדקו ועובדים בהצלחה.