Post 应用程序脚本-使用Google Sheets REST API v4-未写入值-无错误消息

Post 应用程序脚本-使用Google Sheets REST API v4-未写入值-无错误消息,post,google-apps-script,google-sheets-api,Post,Google Apps Script,Google Sheets Api,我已经让所有的东西都工作了,但是这些值没有被写入电子表格。我甚至从POST请求中得到了部分有效的回复。我只是不知道把值放到哪里我已经试着把它们放到有效负载和URL中了 function writeToSheet() { var id,options,range,response,sh,ss,url,values; id = 'Put the spreadsheet ID here'; range = "Sheet1!A1:A1"; values = "['3','two','n

我已经让所有的东西都工作了,但是这些值没有被写入电子表格。我甚至从POST请求中得到了部分有效的回复。我只是不知道把
值放到哪里
我已经试着把它们放到有效负载和URL中了

function writeToSheet() {
  var id,options,range,response,sh,ss,url,values;

  id = 'Put the spreadsheet ID here';
  range = "Sheet1!A1:A1";
  values = "['3','two','nine']";

  url = "https://sheets.googleapis.com/v4/spreadsheets/" +
    id + "/values/" + range + ":append?valueInputOption=USER_ENTERED";

  options = {
    "method":"post",
    "muteHttpExceptions": true,
    "headers": {
      "Authorization": "Bearer " + ScriptApp.getOAuthToken()
    }
  }

  response = UrlFetchApp.fetch(url,options)
  response = JSON.parse(response);

  Logger.log('response ' + JSON.stringify(response))
}
我试过:

url = "https://sheets.googleapis.com/v4/spreadsheets/" + id + 
  "/" + values + "/" + range + ":append?valueInputOption=USER_ENTERED";
我尝试将
values
属性放入有效负载。什么都不管用

我的望远镜很好用。我没有收到任何授权错误。这是我的清单文件,其中的作用域工作得很好

{
  "timeZone": "America/New_York",
  "dependencies": {
  },
  "webapp": {
    "access": "MYSELF",
    "executeAs": "USER_DEPLOYING"
  },
  "exceptionLogging": "STACKDRIVER",
  "oauthScopes": ["https://www.googleapis.com/auth/drive",
                  "https://www.googleapis.com/auth/script.external_request"]
}
我甚至从POST请求中得到了一个合法的回复,除了值

  /*  The response I'm getting back

  {
    "spreadsheetId":"ID Here",
    "tableRange":"Sheet1!A1:C2",
    "updates":{
      "spreadsheetId":"ID here",
      "updatedRange":"Sheet1!A3"
      }
  }

  */

将要写入电子表格的值放在何处?

此修改如何

修改点:
  • 需要在标题中包含
    “application/json”
  • 请求主体是
    {values:['3','two','nine']}
    • 它假定您希望将
      '3'、'two'、'nine'的值分别附加到列A、B和C中
    • 如果要将
      '3'、'two'、'nine'
      的值分别附加到第1行、第2行和第3行,请使用
      {values:[['3']、['two']、['nine']}
修改脚本: 参考资料:

如果这不起作用,我可以问一下错误消息吗?我想修改它。

@Sandy欢迎光临。我很高兴你的问题解决了。
function writeToSheet() {
  var id,options,range,response,sh,ss,url,values;

  id = 'Put the spreadsheet ID here';
  range = "Sheet1!A1:A1";
  values = {values: [['3','two','nine']]}; // Modified

  url = "https://sheets.googleapis.com/v4/spreadsheets/" +
    id + "/values/" + range + ":append?valueInputOption=USER_ENTERED";

  options = {
    "method":"post",
    "muteHttpExceptions": true,
    "headers": {
      "Authorization": "Bearer " + ScriptApp.getOAuthToken()
    },
    "contentType": "application/json", // Added
    "payload": JSON.stringify(values) // Added
  }

  response = UrlFetchApp.fetch(url,options)
  response = JSON.parse(response);

  Logger.log('response ' + JSON.stringify(response))
}