【发布时间】: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