Chrome扩展中使用Google API的PUT请求未呈现

4
我卡在我的代码这一点上,我已经成功地使用PUT请求调用了Sheets API,但它没有呈现在谷歌表格上。
以下是我的代码,其中我同时使用PUT和GET请求来查看数据是否更改:
background.js
chrome.identity.getAuthToken({ 'interactive': true }, getToken);

function getToken(token) {

console.log('this is the token: ', token);

  var params = {
    "range":"Sheet1!A1:B1",
    "majorDimension": "ROWS",
      "values": [
      ["Hi","Crush"]
    ],
  }
  let init = {
    method: 'PUT',
    async: true,
    data: params,
    headers: {
      Authorization: 'Bearer ' + token,
      'Content-Type': 'application/json'
    },
    'contentType': 'json',
  };
  fetch(
      "https://sheets.googleapis.com/v4/spreadsheets/1efS6aMlPFqHJJdG8tQw-BNlv9WbA21jQlufsgtMsUmw/values/Sheet1!A1:B1?valueInputOption=USER_ENTERED",
      init)
      .then((response) => console.log(response))

      let request = {
        method: 'GET',
        async: true,
        headers: {
          Authorization: 'Bearer ' + token,
          'Content-Type': 'application/json'
        },
        'contentType': 'json',
      };
      fetch(
          "https://sheets.googleapis.com/v4/spreadsheets/1efS6aMlPFqHJJdG8tQw-BNlv9WbA21jQlufsgtMsUmw/values/Sheet1!A1:B1",
          request)
          .then((response) => response.json())
          .then(function(data) {
            console.log(data)
          });
}

这是我的Google Sheet的截图,数据没有改变。PUT请求的状态为200,看起来数据仍然在A1:B1中是“Hello World”:enter image description here 这是日志:enter image description here 你有什么想法,缺少什么吗?

我认为你的Sheets API请求体是正确的。虽然我不确定这是否是直接解决方案,但这种修改怎么样?当将“data:params”修改为“data:JSON.stringify(params)”时,会得到什么结果?顺便问一下,“request”中的“'contentType':'json'”是什么? - Tanaike
@Tanaike,我已经尝试修改我的代码为data: JSON.stringify(params),但文本仍未更改。我已在请求中删除了'contentType': 'json'。 - Jessica Rodriguez
没关系,我还在弄清楚为什么请求没有在单元格上呈现。 - Jessica Rodriguez
1
那将是一个巨大的帮助!谢谢 :) - Jessica Rodriguez
1
我提出了一个修改点,请您确认一下?在我的环境中,我可以复制您的情况,并通过这个修改来确认脚本是否有效。但如果这不是解决您问题的方法,我很抱歉。 - Tanaike
显示剩余2条评论
1个回答

2
最初的回答:
如何修改?请将init对象的目标修改为以下内容。
翻译内容:
这个修改怎么样呢?请将init的对象修改如下。
data: params,

To:

body: JSON.stringify(params),

Reference:


1
它有效!我之前也尝试过我的代码,但返回了400错误请求,我以为有什么问题。非常感谢! - Jessica Rodriguez
1
@jess 谢谢您的回复。我很高兴您的问题得到了解决。也谢谢您。 - Tanaike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接