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

    העלאת קובץ מגוגל דרייב למערכת דרך api

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

      כתבתי קוד כזה בגוגל סקריפט:

      function UploadFile_to_yemot(){
      let file_link = SpreadsheetApp.getActiveSheet().getRange('VoiceMail!B6').getValue();
      let fileid = file_link.split(/\/file\/d\/([^\/]+)/)[1];
      console.log (fileid)
      let file = DriveApp.getFileById(fileid);
      let blob = file.getBlob();
      let headers = {'Content-type': 'multipart/form-data'};
      let data_3 = {  'token': token,'path': "ivr2:/0/M1012.wav", 'convertAudio': 1, autoNumbering: false, tts:0,'upload': blob };
      let options_3 = { 'method': 'post','headers': headers, 'payload': data_3};
      let request_3 = JSON.parse(UrlFetchApp.fetch(`${url_yemot_api}UploadFile`, options_3))
      console.log(request_3)
      }
      

      הטוקן עובד לי בפונקציות אחרות מצויין, אבל משום מה כאן אני מקבל את המענה הבא:
      { yemotAPIVersion: 6,
      responseStatus: 'EXCEPTION',
      message: 'IllegalStateException(session token is required)' }
      בתודה מראש

      A א 2 תגובות תגובה אחרונה תגובה ציטוט 0
      • A מנותק
        amp Software 0 @האדם החושב
        נערך לאחרונה על ידי amp Software 0

        איפה אתה מצהיר על המשתנה token ?

        ה תגובה 1 תגובה אחרונה תגובה ציטוט 1
        • ה מנותק
          האדם החושב @amp Software 0
          נערך לאחרונה על ידי

          @amp-Software-0 בפונקצייה נפרדת, כפי שאמרתי, הטוקן תקין לגמרי

          A תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • A מנותק
            amp Software 0 @האדם החושב
            נערך לאחרונה על ידי

            @האדם-החושב
            באותו תחום?
            השגיאה מראה שחסר לך את הטוקן, אז תלך על הכיוון הזה
            מה מודפס לך ב logger.log(token) ?

            ה תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • ה מנותק
              האדם החושב @amp Software 0
              נערך לאחרונה על ידי

              @amp-Software-0 הטוקן עובד לי בהעלאת קבצי טקסט, שליחת צינתוקים, עריכת קמפיינים ועוד
              ב logger.log(token) מודפס לי הטוקן

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

                @האדם-החושב יכול להיות שאתה שולח את הטוקן בget בעוד הבקשה היא בפוסט?

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

                  @אביי-ורבא אני לא כ"כ מבין בזה, אבל הטוקן נמצא בdata_3

                  let data_3 = {  'token': token,'path': "ivr2:/0/M1012.wav", 'convertAudio': 1, autoNumbering: false, tts:0,'upload': blob }
                  

                  שנשלח בפוסט למיטב הבנתי

                  let options_3 = { 'method': 'post','headers': headers, 'payload': data_3};
                  
                  A תגובה 1 תגובה אחרונה תגובה ציטוט 1
                  • A מנותק
                    amp Software 0 @האדם החושב
                    נערך לאחרונה על ידי

                    @האדם-החושב
                    תנסה לצרף את הטוקן url עצמו כ GET כדי לבודד את הבעיה:

                    let request_3 = JSON.parse(UrlFetchApp.fetch(`${url_yemot_api}UploadFile?token=` + token, options_3))
                    
                    ה תגובה 1 תגובה אחרונה תגובה ציטוט 1
                    • ה מנותק
                      האדם החושב @amp Software 0
                      נערך לאחרונה על ידי

                      @amp-Software-0 כתב בהעלאת קובץ מגוגל דרייב למערכת דרך api:

                      • token

                      עזר לטוקן, אבל עכשיו אני נתקל בשגיאה של הנתיב:
                      { responseStatus: 'ERROR',
                      message: 'path is required',
                      messageCode: 109,
                      yemotAPIVersion: 6,
                      success: false }

                      A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • A מנותק
                        amp Software 0 @האדם החושב
                        נערך לאחרונה על ידי amp Software 0

                        @האדם-החושב
                        אוקי, אז הצלחנו לבודד את הבעיה
                        הדרך שבה אתה שולח את הנתונים אינה תקינה ולכן הפרמטרים לא נשלחו,
                        אתה יכול כמובן לשלוח את הכל דרך ה GET אבל הקובץ עצמו חייב להישלח ב body

                        תנסה את זה:

                        function UploadFile_to_yemot(){
                        let file_link = SpreadsheetApp.getActiveSheet().getRange('VoiceMail!B6').getValue();
                        let fileid = file_link.split(/\/file\/d\/([^\/]+)/)[1];
                        console.log (fileid)
                        let file = DriveApp.getFileById(fileid);
                        let blob = file.getBlob();
                        let headers = {'Content-type': 'multipart/form-data'};
                        
                          var formData = new FormData();
                          formData.append('token', token);
                          formData.append('path', "ivr2:/0/M1012.wav");
                          formData.append('convertAudio', 1);
                          formData.append('autoNumbering', false);
                          formData.append('tts', 0);
                          formData.append('upload', blob);
                        
                        let options_3 = { 'method': 'post','headers': headers, 'payload': formData};
                        let request_3 = JSON.parse(UrlFetchApp.fetch(`${url_yemot_api}UploadFile`, options_3))
                        console.log(request_3)
                        }
                        
                        ה תגובה 1 תגובה אחרונה תגובה ציטוט 1
                        • ה מנותק
                          האדם החושב @amp Software 0
                          נערך לאחרונה על ידי

                          @amp-Software-0
                          ReferenceError: FormData is not defined

                          A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • A מנותק
                            amp Software 0 @האדם החושב
                            נערך לאחרונה על ידי

                            @האדם-החושב
                            נכון, זה לא קיים בגוגל סקריפט..
                            תנסה אולי לשלוח את כל הפרמטרים ב GET ותשלח את הקובץ ישירות ב payload

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

                              @האדם-החושב נסה להשתמש עם זה:

                              (ההדפסות ללוג מכוונות)

                              function sendToYemot(file, path) {
                                let convert = '1';
                                let autoNumbering = 'false';
                              
                                Logger.log(`yemot: path=ivr2:/${path}, convertAudio=${convert}, autoNumbering=${autoNumbering}`)
                              
                                let data = { 'token': token_yemot, 'path': `ivr2:/${path}`, 'convertAudio': convert, 'autoNumbering': autoNumbering, 'contents': file };
                                let options = { 'method': 'post', 'payload': data };
                                let request = UrlFetchApp.fetch(`${url_yemot_api}UploadFile`, options);
                                let yemotJson = JSON.parse(request.getContentText());
                              
                                Logger.log("סטטוס התגובה: " + request.getResponseCode() + "\nוטקסט התגובה הוא: " + request.getContentText())
                                
                                if (request.getResponseCode() == 200 && yemotJson.responseStatus == 'OK') {
                                  return true;
                                } else {
                                  errorMessages.push(`שגיאה: העלאת הקובץ ${file.getName()} לנתיב ivr2:/${path} עם הפרמטרים convertAudio=${convert}, autoNumbering=${autoNumbering} נכשלה. להלן טקסט התגובה: ${request.getResponseCode()}, ${request.getContentText()}`);
                                  return false;
                                }
                              }
                              
                              תגובה 1 תגובה אחרונה תגובה ציטוט 2

                              שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

                              בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                              הרשמה התחברות
                              • פוסט ראשון
                                פוסט אחרון