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问题:

相关问题