是否可以在UrlFetchApp中使用Sheets API发布网址?

时间:2018-11-27 20:45:41

标签: javascript post google-apps-script google-sheets-api

我正在尝试将数据追加到电子表格中。

我使用UrlFetchAppGET的值,但是可以使用POST的值来将行追加到电子表格吗?

到目前为止,这是我的代码

var token = ScriptApp.getOAuthToken();
var options = {
  "headers": {
       'Authorization': 'Bearer ' +  token
   },
  "method": "POST",
  "Content-type" : "application/json",
  "payload": JSON.stringify(values) //stringify a 2D array of data
}

var resp = UrlFetchApp.fetch("https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/RangeName:append?insertDataOption=INSERT_ROWS", options);

1 个答案:

答案 0 :(得分:1)

可以在UrlFetchApp中使用Sheets API发布URL。那修改呢?

修改点:

  • 请使用valueInputOption作为查询参数。
    • 在您的端点中,我认为发生了valueInputOption' is required but not specified错误。
  • 当您要使用Content-type时,请将其添加到标题中。
    • 如果要在标题之外使用内容类型,请使用contentType: "application/json"

修改后的脚本:

// sample values
var values = {"values":[["a1","b1","c1"],["a2","b2","c2"]]};
var spreadsheetId = "### spreadsheetId ###";
var RangeName = "### RangeName ###";

var token = ScriptApp.getOAuthToken();
var options = {
  "headers": {
       'Authorization': 'Bearer ' +  token,
       "Content-type": "application/json", // Modified
   },
  "method": "POST",
  "payload": JSON.stringify(values) //stringify a 2D array of data
}
var url = "https://sheets.googleapis.com/v4/spreadsheets/" + spreadsheetId + "/values/" + RangeName + ":append?insertDataOption=INSERT_ROWS&valueInputOption=USER_ENTERED"; // Modified
var resp = UrlFetchApp.fetch(url, options);

注意:

  • 在运行此脚本之前,请确认是否在API控制台上启用了Sheets API。

参考文献:

如果这不是您想要的,请告诉我。我想修改它。