是否可以将 Sheets API post 端点与 UrlFetchApp 一起使用?

Is this possible to use Sheets API post endpoint with UrlFetchApp?

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

我使用 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);

可以将表格 API post URL 与 UrlFetchApp 一起使用。那么这个修改怎么样呢?

修改点:

  • 查询参数请使用valueInputOption
    • 在您的端点中,我认为发生了 valueInputOption' is required but not specified 错误。
  • 如果要使用Content-type,请将其添加到headers。
    • 如果要使用headers以外的内容类型,请使用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控制台启用了表格API。

参考文献:

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