【问题标题】:Creating Google Sheets file with REST request使用 REST 请求创建 Google 表格文件
【发布时间】:2019-05-10 17:51:58
【问题描述】:

我对 REST 的概念非常陌生,我一直在尝试使用 Google 的表格、云端硬盘和课堂 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,所以我有点困惑。非常感谢任何帮助!

【问题讨论】:

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


    【解决方案1】:

    经过一番修补,我想出了自己的答案。我将Content-Type 更改为application/javascript。即使这不是我想要的,它也抛出了一个错误,说要更改fetch URI。我试过了,它生成了一个只包含[object Object] 的Javascript 文件。我很困惑,所以我把它全部改回来了。当我遇到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 并自己解决问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      相关资源
      最近更新 更多