העלת קובץ בודד בapi
-
@שלוחה-404
מה זה אמור להיות -
@החסיד זה מעלה קובץ בודד למערכת אתה יכול לקרוא את הקוד וללמוד את הלוגיקה אתה יכול להשתמש בזה כדי להעלות
-
@שלוחה-404
אני לא רואה בזה את הפרמטרים. אני בסך הכל רוצה לדעת את השם של הפרמטר שבתוכו אני שולח את הקובץ עצמו. -
שמישהו כבר יענה לי
הנה מה שהגדרתי בגוגל סקריפט:
ואני מקבל השגיאה הנ"ל
מה יכול להיות הבעיה? -
@החסיד
גוגל סקריפט לא תומך מול ימות
דובר על זה אינספור פעמים בפורום! -
@לימוד-בתורת-מרן
מה זה אומר לא תומך,
א) יש ל @אביי-ורבא את 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)?
איך זה עובד יחד? (אולי זה בעצם הבעייה שלי?)
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות