使用REST请求创建Google表格文件

时间:2018-12-09 18:24:39

标签: json rest google-api request content-type

我对REST的概念真的很陌生,我一直在尝试使用Google的Sheets,Drive和Classroom API。我已经能够提取课堂花名册数据,但是我一生都无法找出如何使用parseError修复此问题的方法,并且谷歌搜索数小时仍无济于事。

let init = {
      method: "POST",
      async: true,
      headers: {
        Authorization: "Bearer " + token,
        "Content-Type": "application/json",
      },
      body: {
        "mimeType": "application/vnd.google-apps.spreadsheet"
      },
      "contentType": "application/json"
    };
    fetch('https://www.googleapis.com/drive/v3/files?key='+apicall, init) 
    .then((response) => response.json())
    .then(function(data) {
      console.log(data);
      console.log(init);
    });

控制台日志是我可以查看的数据,显然这不会出现在最终项目中,但是每次发送请求时,它都会引发错误400 parseError,该错误为Google clearly tells me is a Content-Type error,但是我指定它是JSON,所以有点困惑。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

经过一番修补,我想出了自己的答案。我将Content-Type更改为application/javascript。即使不是我想要的,它还是抛出了一个错误,说要更改fetch URI。我尝试过,它制作了一个Javascript文件,其中只包含[object Object]。我很困惑,所以我把它改回来了。遇到this quote时,我阅读了有关JSON格式的更多信息:

  

拥有Javascript对象时,序列化JSON非常简单:

这使我想起了它使空的Javascript对象...哦!主体信息不是格式化为JSON数据,而是格式化为Javascript数组!所以我想我应该...

var bodydata = {"name": "New spreadsheet", "mimeType": "application/vnd.google-apps.spreadsheet"};
    let init = {
      method: "POST",
      async: true,
      headers: {
        Authorization: "Bearer " + token,
        "Content-Type": "application/json",
      },
      body: JSON.stringify(bodydata)

...将Javascript数据转换为JSON字符串!

它奏效了!这非常令人满意,但是我想我会在这里回答我自己的问题,以供其他任何人学习REST API并像我一样自己弄清楚东西!