Google apps script Google Sheets API仅返回不必要的信息

Google apps script Google Sheets API仅返回不必要的信息,google-apps-script,dialogflow-es,google-sheets-api,chatbot,Google Apps Script,Dialogflow Es,Google Sheets Api,Chatbot,目标是:将GoogleSheets数据作为fulfillmentText使用到Dialogflow中。这是当前代码(使用Google Apps脚本): 第一个问题是,当从电子表格中读取时,不是仅获取请求的值,而是输出: {valueRanges=[{majorDimension=ROWS, values=[[Content here...]], range=Sheet1!B1}], spreadsheetId=XXXYYYZZZ} 与电子表格相关的信息不是必需的。只需要范围内容。到目前为止,

目标是:将GoogleSheets数据作为fulfillmentText使用到Dialogflow中。这是当前代码(使用Google Apps脚本):

第一个问题是,当从电子表格中读取时,不是仅获取请求的值,而是输出:

 {valueRanges=[{majorDimension=ROWS, values=[[Content here...]], range=Sheet1!B1}], spreadsheetId=XXXYYYZZZ}
与电子表格相关的信息不是必需的。只需要范围内容。到目前为止,不可能清除输出JSON中的电子表格部分。我在文档中没有找到关于这个问题的任何信息

第二个问题是:在
return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType.JSON)
中将内容转换为JSON后,前面的内容被包装在
字段中:

总而言之,第一个问题是仅从Sheets API读取内容,而不是:
sheetId
、range和
majorDimension
。。。第二个是发送从
values
字段中展开的JSON值。这是Dialogflow中符合条件的响应格式:


提前感谢

我相信你的目标如下

  • 您希望从以下对象检索
    “注意,我们通过附属机构或赞助商链接链接到某些第三方产品”
    的内容。您希望返回像
    {“values”:content}
    这样的内容

    {
      "valueRanges": [
        {
          "range": "Sheet1!B1",
          "majorDimension": "ROWS",
          "values": [
            [
              "Note that we link to certain 3rd party products via affiliate or sponsored links"
            ]
          ]
        }
      ],
      "spreadsheetId": "XXXYYYZZZ"
    }
    
对于这个问题,这个答案如何

修改点:
  • Sheets.Spreadsheets.Values.batchGet
    返回解析后的JSON对象。因此不需要使用
    JSON.parse
  • 为了从响应值中检索值,可以使用
    result.valueRanges[0].values
    。另外,检索第一个元素时,请使用
    result.valueRanges[0].values[0][0]
修改脚本: 修改脚本时,请按以下方式修改

发件人: 致:
  • 如果要检索“值”,请使用
    result.valueRanges[0]。values
    而不是
    result.valueRanges[0]。values[0][0]
注:
  • 修改Web应用脚本时,请将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请注意这一点。
{
  "valueRanges": [
    {
      "range": "Sheet1!B1",
      "majorDimension": "ROWS",
      "values": [
        [
          "Note that we link to certain 3rd party products via affiliate or sponsored links"
        ]
      ]
    }
  ],
  "spreadsheetId": "XXXYYYZZZ"
}
{
  "valueRanges": [
    {
      "range": "Sheet1!B1",
      "majorDimension": "ROWS",
      "values": [
        [
          "Note that we link to certain 3rd party products via affiliate or sponsored links"
        ]
      ]
    }
  ],
  "spreadsheetId": "XXXYYYZZZ"
}
Logger.log(JSON.parse(result));
//Transforms the read value from Sheets into JSON format
return ContentService.createTextOutput(JSON.stringify(result))
          .setMimeType(ContentService.MimeType.JSON);
var content = result.valueRanges[0].values[0][0];
var res = {values: content};
return ContentService.createTextOutput(JSON.stringify(res)).setMimeType(ContentService.MimeType.JSON);