העלת קובץ בודד בapi
-
@החסיד
גוגל סקריפט לא תומך מול ימות
דובר על זה אינספור פעמים בפורום! -
@לימוד-בתורת-מרן
מה זה אומר לא תומך,
א) יש ל @אביי-ורבא את Mail Talk שעובד על גוגל סקריפט
ב) בהתחלה קיבלתי שגיאה שהטוקן לא תקין, ואז שמתי את זה בתוך הURL וזה החזיר שגיאה על השלוחה עד ששמתי גם את זה בהURL, עכשיו הקובץ עצמו אני לא יכול לצרף בהURL, אבל אני רואה מזה שזה בעצם עובד רק כנראה שיש לי איזה בעיה עם הbody
אשמח שמישהו יעזור לי בזה. -
@החסיד עוד רלוונטי?
-
@אופיר
כן, מאוד אשמח לקבל תשובה. -
@החסיד בעיקרון זה די פשוט, והתיעוד המלא נמצא כאן, אבל אני יתן דוגמה של פונקציה להעלאת קובץ מגוגל דרייב למערכת ימות המשיח
יש לקרוא לפונקציה עם הפרמטרים הבאים:- fileName - שם הקובץ כפי שהוא מופיע בגוגל דרייב (כולל סיומת).
- token - טוקן ההתחברות למערכת (מפתח API).
- targetPath - הנתיב המלא ויעד שמירת הקובץ במערכת, כולל סיומת (לדוגמה: ivr2:1/M1000.wav).
- autoNumbering - האם למספר את הקובץ אוטומטית בשלוחה. ברירת מחדל (אם לא צויין) היא לא.
- הפונקציה מחזירה אובייקט JSON המכיל את תגובת השרת ימות המשיח.
function uploadFileToYemot(fileName, token, targetPath, autoNumbering = false) { const url = "https://www.call2all.co.il/ym/api/UploadFile"; const extension = targetPath.split('.').pop().toLowerCase(); const tts = extension === "tts"; let convertAudio = (extension !== "tts" && extension !== "wav"); if (autoNumbering) { //התנאי הזה נוסף בעקבות באג פנימי של ימות בהעלאת קבצים עם מספור אוטומטי. convertAudio = true; } const fileBlob = DriveApp.getFilesByName(fileName).next().getBlob(); const payload = { token: token, path: targetPath, file: fileBlob, autoNumbering: autoNumbering ? 1 : 0, convertAudio: convertAudio ? 1 : 0, tts: tts ? 1 : 0 }; const options = { method: "post", payload: payload }; const response = UrlFetchApp.fetch(url, options); return JSON.parse(response.getContentText()); }דוגמה לשימוש:
uploadFileToYemot("תפריט ראשי.mp3", "מפתח API...", "ivr2:/M1000.wav"); -
@אופיר
באמת תודה על התשובה שלך, נתת לזה דוגמה באמת ברורה, אבל זה עדיין לא עובד.
שיניתי את הפרמטר של 'qqfile' ל-'file', ואת כל הפרמטרים האחרים כתבתי כמו שאמרת, ואני עדיין מקבל שגיאה על הטוקן.
וכמו שאמרתי מקודם, אם אני מכניס את הטוקן להURL, אז אני כבר לא מקבל שגיאה על הטוקן אבל אני מקבל אז שגיאה על השלוחה, ואם אני מכניס גם את זה להURL אני מקבל שגיאה על הקובץ, שזה אני כבר לא יכול לשים בהURL.
אז אני אשמח אם אתה יכול להגיד לי אם אתה רואה משהו אחר שלא כתבתי נכון בצילום המסך הקודם שלי (יש לי שמה מערך בשם files עם קבצי שמע, וכדי לראות אם זה עובד, אני מנסה את זה על הblob הראשון שבמערך).
וחוץ מזה אני לא מבין בדיוק, האם אני צריך לציין גם את הסיומת אפילו אם אני מגדיר שזה יעלה אוטומטי להקובץ הגבוה ביותר בהשלוחה (autoNumbering = true)?
איך זה עובד יחד? (אולי זה בעצם הבעייה שלי?) -
-
@אופיר
שוב פעם תודה על התשובה, אבל זה עדיין לא עובד.
לגבי ההערה באמצע הקוד, ראיתי את זה ובסך הכל הבנתי מזה שאם אני משתמש עם מספור אוטומטי אז אני חייב גם להשתמש עם המרה לwav וזה בדיוק מה שעשיתי.
הנה צילומים מכל מה שעשיתי:
כשאני שולח הטוקן בpost ולא בתוך הurl אני מקבל את השגיאה הבאה:

כשאני עושה כנ"ל להשלוחה אני מקבל השגיה הבאה:

אם אני שם את שתיהם בתוך הurl הנה השגיאה:

עכשיו, לגבי מה שאתה אומר שזה לא יכול להיות שתיהם, גם קובץ הגבוה אוטומטי וגם לציין מספר קובץ, הנה מה שקורא כשאני לא שם את מספר הקובץ:

ודרך אגב עכשיו ניסיתי את הקוד שנתת וזה גם לא עובד, הנה איך שהשתמשתי עם זה והשגיאה שזה נותן:

ניסיתי את זה גם כשהפרמטר הרביעי זה true וגם כשזה false, גם עם מספר קובץ וגם בלי.
אז אני מאוד אשמח אם אתה יכול להביא קוד שניסית וזה עובד, כדי שאני יוכל לראות איפה הבעיה שלי, או אם אתה יכול להגיד לי אם אתה רואה משהו שלא כתבתי נכון.
הנה קוד קטן שכתבתי רק כדי למצוא איפה בדיוק הבעיה שלי אבל עדיין לא הצלחתי למצוא אותה.
הקוד אמור להעלות קובץ שמע שמצורף להאימייל האחרון, להמערכת (לפני שניסיתי את זה שלחתי לעצמי מייל עם קובץ מצורף אחד , כמובן קובץ שמע) אולי פה אתה כן יכול למצוא למה זה לא עובד?

-
עכשיו אני רואה שיש " ,' " מיותרים אחרי המילה wav בהצילום מסך האחרון אבל זה לא קשור לזה, גם כשאני מסיר את זה זה לא עובד.
-
@החסיד תעביר את הטוקן בpayload ולא כפרמטרים.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות