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

时间:2018-02-21 23:13:07

标签: google-apps-script gmail-addons

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

我在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

2 个答案:

答案 0 :(得分:1)

更新

想出这个,你可以使用formsInput回调函数进行访问。

我将sendToSpreadsheet切换到以下

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

答案 1 :(得分:0)

如果上述方法无效,则可以使用

e.formInputs.product_category;

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