Google 应用脚本从卡片操作中获取表单数据

Google App Script Get Form Data From Card Action

我正在处理卡片服务脚本,但在操作处理程序方面遇到了一些困难。

我在 CardService 上有两个下拉列表,一个是 product_category,另一个是 sub_category。

// created as (and the following sub_category)
var productCategory = CardService.newSelectionInput()
  .setType(CardService.SelectionInputType.DROPDOWN)
  .setTitle("Product Category")
  .setFieldName("product_category")

然后我在下面创建了一个按钮,所以当采取行动时,它会将数据提交到电子表格(我拥有的功能)。我在这里缺少并且似乎无法在文档中挖掘的是我如何获取 product_category 和 sub_category 并将它们作为参数传递。

// my action caller on the button

  var newButton = CardService.newTextButton()
  .setText('Submit')
  .setOnClickAction(CardService.newAction()
                   .setFunctionName("sendToSpreadsheet"));

// adding button to section

section.addWidget(CardService.newButtonSet().addButton(newButton));

//i then have my function which takes product and sub product
function sendToSpreadsheet(product_category, sub_category){
  // process events here
}

我的问题是如何将 product_category 和 sub_category 传递给 sendToSpreadsheet 函数? 一直基于此处的文档:https://developers.google.com/apps-script/reference/card-service/card-action

更新:

想通了,在回调的 e 对象中有一个 formInputs 对象,您可以使用它在函数中访问。

我将 sendToSpreadsheet 切换为以下内容

 function sendToSpreadsheet(e){
     var res = e['formInputs'];
     var productCat = res['product_category'];
     var productSubCat = res['product_sub_category'];
     // rest of code...
}

如果上述方法不起作用,您可以使用

e.formInputs.product_category;

e.formInputs returns 一个 JSON 对象,您可以通过提供的字段名称获取数据。