【问题标题】:PUT request in Chrome Extension using Google API not rendering使用 Google API 的 Chrome 扩展中的 PUT 请求未呈现
【发布时间】:2023-04-04 02:05:01
【问题描述】:

我被困在我的代码中,我已经使用 PUT 请求成功调用了 Sheets API,但它没有在 Google Sheet 上呈现。

这是我的代码,我同时使用 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 表格的屏幕截图,数据没有改变。 PUT 请求的状态是 200,在A1:B1 中似乎数据仍然是Hello World

这是日志:

你知道这里缺少什么吗?

【问题讨论】:

  • 我认为您对 Sheets API 的请求正文是正确的。所以虽然我不确定这是否是直接的解决方案,那么这个修改呢?当data: params,修改为data: JSON.stringify(params),,你会得到什么结果?顺便问一下,request 中的'contentType': 'json', 是什么?
  • @Tanaike,我尝试将我的代码修改为data: JSON.stringify(params),但文本仍然没有改变。我已经删除了请求中的 'contentType': 'json'。
  • 感谢您的回复。很抱歉我的评论对您的情况没有用处。
  • 这将是一个很大的帮助!谢谢:)
  • 我提出了一个修改点。你能确认一下吗?在我的环境中,我可以复制您的情况并确认脚本通过此修改工作。但如果这不能解决您的问题,我深表歉意。

标签: google-chrome google-chrome-extension google-sheets-api


【解决方案1】:

这个修改怎么样?请修改init的对象如下。

发件人:

data: params,

收件人:

body: JSON.stringify(params),

参考:

【讨论】:

  • 有效!我也从我以前的代码中尝试过这个,它返回 400 Bad request,我认为有问题。非常感谢!
  • @jess 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多