1

我已經有一個工作的應用程序,但今天它已決定休息,所以我認爲谷歌已經做了某種改變。 CSV數據傳遞給我的函數,然後上傳文件並將其轉換爲谷歌表格式(這是它做的)Google Drive Api v3如何使用Google表格格式上傳? 400反應

我正在使用JS,並沒有關於如何在文檔中的示例用V3做。我已經讀過,而不是運行'conver':在客戶端的請求參數中爲true,您只需指定所需的mimeType,API將爲您執行此操作。

這裏是它指出,在文檔 - >

https://developers.google.com/drive/v3/web/migration#other_changes

進口到谷歌文檔格式,現在通過在資源上設定合適的目標mime類型,而不是指定要求轉換=真。

這裏是我正在看的代碼。它返回一個400 error每當我離開mime類型爲'application/vnd.google-apps.spreadsheet'

gapiService.uploadCSVToGoogleSheet =function(data, sheetTitle) { 
     // create file 


     cnsl("in gapiService.uploadCSVToGoogleSheet()!!!", "start"); 


     gapi.client.load('drive', 'v3', 

     upload 

    ); 

     function upload(){ 

      var fileData = new Blob(data, {type: "text/csv-creation", fileName: "testName"}); 

      const boundary = '-------314159265358979323846'; 
      const delimiter = "\r\n--" + boundary + "\r\n"; 
      const close_delim = "\r\n--" + boundary + "--"; 

      var reader = new FileReader(); 
      reader.readAsBinaryString(fileData); 

      reader.onload = function (e) { 
       console.log("loaded reader "); 

       console.log(contentType); 
       var metadata = { 
        'name': sheetTitle + "-" + getCurrentDate(), 
        'mimeType': 'application/vnd.google-apps.spreadsheet' 
       }; 

       var base64Data = btoa(reader.result); 
       var multipartRequestBody = 
        delimiter + 
        'Content-Type: application/json\r\n\r\n' + 
        JSON.stringify(metadata) + 
        delimiter + 
        'Content-Type: ' + contentType + '\r\n' + 
        'Content-Transfer-Encoding: base64\r\n' + 
        '\r\n' + 
        base64Data + 
        close_delim; 

       // POST INFO 
       var request = gapi.client.request({ 
        'path': '/upload/drive/v3/files', 
        'method': 'POST', 
        'params': { 

         'uploadType': 'multipart' 
         // 'convert': true 
       }, 

        'headers': { 
         'Content-Type': 'multipart/mixed; boundary="' + boundary + '"' 
        }, 
        'body': multipartRequestBody 
       }); 

       request.execute(gapiService.afterFileInsert); 

      } //endof reader onload 

     } 



     function getCurrentDate() { 
      console.log("in get GetCurrentDATE"); 
      var today = new Date(); 
      var dd = today.getDate(); 
      var mm = today.getMonth() + 1; //January is 0! 
      var yyyy = today.getFullYear(); 

      if (dd < 10) { 
       dd = '0' + dd 
      } 

      if (mm < 10) { 
       mm = '0' + mm 
      } 

      today = mm + '_' + dd + '_' + yyyy; 
      return today; 
     }; 

     // console.log(fileData, null, 0); 

    }; 

`

回答

0

如果未提供所需的字段或參數你收到error 400,提供的值是無效的,或者提供字段的組合是無效的。

嘗試向驅動器項添加重複的父項時,也會引發此錯誤。當試圖添加一個可以在目錄圖中創建一個循環的父代時,它也會被拋出。

有關如何上傳谷歌表格式在谷歌Drive更多信息,請查看這些相關的SO問題:

相關問題