• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    שגיאה בהעלת קובץ למערכת בAPI

    פורום מפתחים API
    3
    12
    179
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • כ
      כוספים למשיח נערך לאחרונה על ידי

      שלום וברכה
      אני מנסה לעלות קובץ למערכת דרך גוגל סקריפט אני משתמש בקוד הבא

      let url_yemot_api = `https://www.call2all.co.il/ym/api/`;
      
      function test_token() {
          let token_yemot = SpreadsheetApp.getActiveSheet().getRange('settings!B6').getValue();
          try {
              let req = JSON.parse(UrlFetchApp.fetch(`${url_yemot_api}GetSession?token=${token_yemot}`));
              Logger.log("test_token.req=" + req.responseStatus);
              if (req.responseStatus === 'OK') {
                  Logger.log("it's ok");
              } else {
                  Logger.log("Token is not valid, attempting to login again.");
                  login_token(); // קורא שוב לפונקציה login_token לקבלת טוקן חדש
              }
          } catch (e) {
              Logger.log("Exception: " + e.message);
              login_token(); // אם קרה שגיאה בביצוע הבקשה, ננסה להתחבר מחדש
          }
      }
      
      
      
      function login_token() {
          let user = SpreadsheetApp.getActiveSheet().getRange('settings!B2').getValue();
          let password = SpreadsheetApp.getActiveSheet().getRange('settings!B3').getValue();
          let req;
          let counter = 0;
          while (req === undefined || req.responseStatus !== "OK") {
              req = JSON.parse(UrlFetchApp.fetch(`${url_yemot_api}Login?username=${user}&password=${password}`));
              Logger.log(req.responseStatus);
              counter++;
              if (counter >= 5) {
                  break;
              }
          }
          if (counter >= 5) {
              let recipient = Session.getActiveUser().getEmail();
              let fileName = SpreadsheetApp.getActiveSheet().getParent().getName();
              let fileUrl = SpreadsheetApp.getActiveSheet().getParent().getUrl();
              let owner = SpreadsheetApp.getActiveSheet().getParent().getOwner().getEmail();
              return;
          }
          Logger.log("req.token=" + req.token);
          SpreadsheetApp.getActiveSheet().getRange("settings!B6").setValue(req.token);
      }
      
      function uploadFileToServer() {
          // בדוק אם הטוקן תקף לפני שליחת הקובץ
          test_token();
          let token_yemot = SpreadsheetApp.getActiveSheet().getRange('settings!B6').getValue();
          
          // אם הטוקן לא תקף, הפונקציה test_token() צריכה להוציא טוקן חדש
          if (!token_yemot) {
              Logger.log("Token is not valid, cannot upload file.");
              return;
          }
      
          // פרטי הקובץ לשליחה
          const fileId = SpreadsheetApp.getActiveSheet().getRange('settings!B4').getValue(); // מזהה הקובץ בגוגל דרייב
          const uploadPath = SpreadsheetApp.getActiveSheet().getRange('settings!B5').getValue(); // נתיב ושם קובץ בשרת
      
          // אפשרות נוספת להוסיף פרמטרים נוספים במקרה הצורך
          const convertAudio = 1; // המרת אודיו לפורמט WAV
          const autoNumbering = true; // האם להפעיל מיספור אוטומטי (במקרה שה-API תומך בכך)
          const tts = 0; // הצהרה על קובץ tts	
      
          try {
              // שליפת הקובץ מ-Google Drive
              const file = DriveApp.getFileById(fileId);
              const blob = file.getBlob();
      
              // שליחת הקובץ לשרת עם הטוקן ופרמטרים נוספים
              const uploadUrl = `${url_yemot_api}UploadFile?token=${token_yemot}`; // שליחת הטוקן כ-parameter ב-URL
              const uploadPayload = {
                  path: uploadPath,               // נתיב היעד בשרת
                  convertAudio: convertAudio,     // המרת האודיו לפורמט WAV
                  autoNumbering: autoNumbering,   // הוספת מיספור אוטומטי (אם נדרש)
                  File: blob                      // הקובץ עצמו
              };
      
              const uploadOptions = {
                  method: "post",
                  headers: {
                      "Authorization": `Bearer ${token_yemot}`  // שליחת הטוקן כ-Bearer Token ב-header
                  },
                  payload: uploadPayload,
                  contentType: "multipart/form-data"
              };
      
              const uploadResponse = UrlFetchApp.fetch(uploadUrl, uploadOptions);
              const uploadData = JSON.parse(uploadResponse.getContentText());
      
              if (uploadData.responseStatus === "OK") {
                  Logger.log("הקובץ הועלה בהצלחה! נתיב: " + uploadData.path);
              } else {
                  Logger.log("שגיאה בהעלאת הקובץ: " + uploadData.message);
              }
          } catch (e) {
              Logger.log("שגיאה: " + e.message);
          }
      }
      
      

      והתגובה שאני מקבל זה
      path is required

      הבנתי שהבעייה זה בהגדרת הנתיב
      אבל הנתיב מוגדר כמו שצריך
      שיחקתי עם זה קצת ושום דבר לא עזר
      אשמח לקבל את הכוונת חברי הפורום
      תודה רבה

      M תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • M
        MGM IVR מומחה @כוספים למשיח נערך לאחרונה על ידי

        @כוספים-למשיח כתב בשגיאה בהעלת קובץ למערכת בAPI:

        אבל הנתיב מוגדר כמו שצריך

        אנחנו לא רואים את הנתיב מהקוד שלך,
        זה עונה על התיעוד?

        path | נתיב להעלאה | חובה |
        עבור העלאת קבצים לתיקיות במערכת יש לציין בהתחלה ivr2: ולאחר מכן את הנתיב המלא. למשל לקובץ 000.wav בתיקייה 5 הנתיב יהיה ivr2:5/000.wav. שימו לב שבהעלאה רגילה חובה לציין את שם הקובץ הרצוי, בהעלאה עם מספור אוטומטי (ראה להלן) יש לציין את התיקייה בלבד

        כ תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • כ
          כוספים למשיח @MGM IVR נערך לאחרונה על ידי

          @MGM-IVR כתב בשגיאה בהעלת קובץ למערכת בAPI:

          @כוספים-למשיח כתב בשגיאה בהעלת קובץ למערכת בAPI:

          אבל הנתיב מוגדר כמו שצריך

          אנחנו לא רואים את הנתיב מהקוד שלך,
          זה עונה על התיעוד?

          path | נתיב להעלאה | חובה |
          עבור העלאת קבצים לתיקיות במערכת יש לציין בהתחלה ivr2: ולאחר מכן את הנתיב המלא. למשל לקובץ 000.wav בתיקייה 5 הנתיב יהיה ivr2:5/000.wav. שימו לב שבהעלאה רגילה חובה לציין את שם הקובץ הרצוי, בהעלאה עם מספור אוטומטי (ראה להלן) יש לציין את התיקייה בלבד

          זה נמצא בתא B5
          וזה מה ששמתי שם

          ivr2:/4/9/2

          ל תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • ל
            לעזור לכולם מומחה @כוספים למשיח נערך לאחרונה על ידי

            @כוספים-למשיח
            תצרף את path ל url

            כ תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • כ
              כוספים למשיח @לעזור לכולם נערך לאחרונה על ידי

              @לעזור-לכולם כתב בשגיאה בהעלת קובץ למערכת בAPI:

              @כוספים-למשיח
              תצרף את path ל url

              תוכל לכוון אותי יותר מעשי איך בדיוק

              ל תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • ל
                לעזור לכולם מומחה @כוספים למשיח נערך לאחרונה על ידי

                @כוספים-למשיח
                בשורה 72 תוסיף פרמטר path ואת המשתנה uploadPath

                כ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • כ
                  כוספים למשיח @לעזור לכולם נערך לאחרונה על ידי

                  @לעזור-לכולם כתב בשגיאה בהעלת קובץ למערכת בAPI:

                  @כוספים-למשיח
                  בשורה 72 תוסיף פרמטר path ואת המשתנה uploadPath

                  כתבתי כך

                          const uploadUrl = `${url_yemot_api}UploadFile?token=${token_yemot}&path=${encodeURIComponent(uploadPath)}`; // שליחת token ו-path ב-URL
                  
                  

                  וקיבלתי את התגובה הבאה

                  path is invalid

                  ל תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • ל
                    לעזור לכולם מומחה @כוספים למשיח נערך לאחרונה על ידי

                    @כוספים-למשיח
                    אוקיי
                    אז התקדמת, הוספת PATH אך הנתיב לא מוגדר נכון
                    תדפיס את uploadUrl ותבדוק מה הנתיב שהוא שולח

                    כ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • כ
                      כוספים למשיח @לעזור לכולם נערך לאחרונה על ידי כוספים למשיח

                      @לעזור-לכולם כתב בשגיאה בהעלת קובץ למערכת בAPI:

                      uploadUrl

                      זה התגובה
                      ה-URL לשליחה הוא: https://www.call2all.co.il/ym/api/UploadFile?token=TOKEN&path=ivr2%3A%2F4%2F9%2F2

                      כ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • כ
                        כוספים למשיח @כוספים למשיח נערך לאחרונה על ידי

                        @כוספים-למשיח כתב בשגיאה בהעלת קובץ למערכת בAPI:

                        @לעזור-לכולם כתב בשגיאה בהעלת קובץ למערכת בAPI:

                        uploadUrl

                        זה התגובה
                        ה-URL לשליחה הוא: https://www.call2all.co.il/ym/api/UploadFile?token=TOKEN&path=ivr2%3A%2F4%2F9%2F2

                        אני עדיין מקבל את השגיאה

                        path is invalid
                        

                        למה זה קורה
                        ומה צריך לעשות כדי לתקן את זה?

                        ל תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • ל
                          לעזור לכולם מומחה @כוספים למשיח נערך לאחרונה על ידי

                          @כוספים-למשיח
                          תוריד את הURIENCODE

                          כ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • כ
                            כוספים למשיח @לעזור לכולם נערך לאחרונה על ידי

                            @לעזור-לכולם כתב בשגיאה בהעלת קובץ למערכת בAPI:

                            @כוספים-למשיח
                            תוריד את הURIENCODE

                            לא עזר
                            1d96681d-d8d5-4826-9d97-63861be314fb-image.png

                            תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • פוסט ראשון
                              פוסט אחרון