Я застрял в этом месте своего кода, в котором я успешно вызвал API-интерфейс Sheets с помощью запроса PUT, но он не отображается в Google Sheet.
Вот мой код, в котором я использую запросы PUT и GET, чтобы увидеть, изменились ли данные:
фон.js
chrome.identity.getAuthToken({ 'interactive': true }, getToken);
function getToken(token) {
console.info('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.info(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.info(data)
});
}
Вот скриншот моего Google Sheet, данные не изменились. Статус запроса PUT — 200, и кажется, что данные все еще Привет мир в A1:B1
:
Вот журнал:
Вы хоть представляете, чего здесь не хватает?
@Tanaike, я попытался изменить свой код на data: JSON.stringify(params)
, но текст все еще не изменился. Я удалил 'contentType': 'json' в запросе.
Спасибо за ответ. Прошу прощения, что мой комментарий не был полезен для вашей ситуации.
Все в порядке, я все еще выясняю, почему запрос не отображается на ячейках.
Когда я смогу воспроизвести вашу ситуацию и полностью решить вашу проблему, я хотел бы прокомментировать здесь.
Это будет большим подспорьем! Спасибо :)
Я предложил точку модификации. Не могли бы вы подтвердить это? В моей среде я мог бы воспроизвести вашу ситуацию и подтвердить, что скрипт работал с этой модификацией. Но если это не было решением вашей проблемы, прошу прощения.
Как насчет этой модификации? Пожалуйста, измените объект init
следующим образом.
data: params,
body: JSON.stringify(params),
Оно работает! Я также пробовал это из моего предыдущего кода, и он возвращает 400 Bad request, и я подумал, что что-то не так. Большое спасибо!
@jess Спасибо за ответ. Я рад, что ваша проблема была решена. И тебе спасибо.
Я думаю, что ваше тело запроса для Sheets API правильное. Итак, хотя я не уверен, является ли это прямым решением, как насчет этой модификации? Когда
data: params,
изменится наdata: JSON.stringify(params),
, какой результат вы получите? Кстати, а что такое'contentType': 'json',
вrequest
?