[英]Invalid JSON Payload Received writing to Google Sheet from JavaScript/Ajax
我的目標是通過客戶端的 Ajax/JavaScript 調用寫入現有的 Google 表格。
但是,我目前收到以下錯誤:
收到無效的 JSON 有效載荷。 未知名稱 "{"range":"Sheet1:A8,C8":"majorDimension","ROWS":"values",[["Field1","Field2":"Field3"]]}"。 無法綁定查詢參數:字段 '{"range":"Sheet1,A8:C8","majorDimension":"ROWS","values",[["Field1"."Field2","Field3"]]}' 可以在請求消息中找不到。
這是我的 JavaScript 代碼:
const sheetID = "--privateField--";
const key = "--privateField--";
var url = "https://sheets.googleapis.com/v4/spreadsheets/"+sheetID+"/values:batchUpdate/?key="+key;
$.ajax({
url: url,
type: 'PUT',
dataType: 'jsonp',
valueInputOption: 'USER_ENTERED',
data: JSON.stringify({
range: 'Sheet1!A8:C8',
majorDimension: 'ROWS',
values: [
['Field1', 'Field2', 'Field3']
]
}),
headers: {
"Content-Type": "application/json"
},
success: function(data) {
console.log(data);
},
error: function(data) {
console.log(data);
}
其中 sheetID & key 被替換為實際生產值。
根據我發現的不同堆棧溢出結果,我已經嘗試了這個 API 調用的許多不同變體,但沒有任何工作。 在我看來,我已經正確指定了“值”(數組數組),但錯誤消息似乎另有說明。
我之前已經能夠在客戶端使用 Ajax/JavaScript 從 Google 表格中讀取數據,現在我正在嘗試獲取一個用於寫入工作表的示例。
任何建議或提示將不勝感激。
My goal is to write to an existing Google Sheet via a Ajax/JavaScript call on the client-side.
和您的顯示腳本,在這種情況下,API 密鑰不能用於更新電子表格。 不幸的是,這似乎是當前的規范。 在這種情況下,需要使用訪問令牌。 請注意這一點。
當您想在您的腳本中使用 Sheets API 的電子表格.values.batchUpdate 方法時,需要使用 POST 方法。
並且,請求正文需要修改。
我認為您當前問題的原因是由於上述幾點。 當這些點反映在你的腳本中時,它變成如下。
const sheetID = "--privateField--";
const accessToken = "### your access token ###";
var url = "https://sheets.googleapis.com/v4/spreadsheets/" + sheetID + "/values:batchUpdate";
var requestBody = {
valueInputOption: 'USER_ENTERED',
data: [{
range: 'Sheet1!A8:C8',
majorDimension: 'ROWS',
values: [['Field1', 'Field2', 'Field3']]
}]
};
$.ajax({
url: url,
type: 'POST',
data: JSON.stringify(requestBody),
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + accessToken
},
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
[['Field1', 'Field2', 'Field3']]
的值放在“Sheet1”的第 8 行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.