如何在自适应卡Bot应用程序中使用action.submit调用方法

时间:2019-03-04 12:03:57

标签: botframework cortana adaptive-cards cortana-intelligence

我正在使用自适应卡。 (Bot Framework SDK v3)我需要获取自适应卡中的值,并且还需要在后面的代码中调用某些方法。这是我的自适应卡Adaptive Card

1 个答案:

答案 0 :(得分:1)

我要猜测一个答案;如果你读过 https://docs.microsoft.com/en-us/cortana/skills/adaptive-cards

那么您的问题可能是“嗯,响应看起来像什么?”我同意,在文档中不清楚。

当您单击Submit.action时,您将在消息有效负载中重新获得所有ID和值。例如,如果您在此处查看输入示例https://adaptivecards.io/samples/Inputs.html

您对点击的回复消息将是这个 {"SimpleVal":"My name","UrlVal":"","EmailVal":"","TelVal":"","MultiLineVal":"","NumVal":"1","DateVal":"2017-09-20","TimeVal":"16:59","CompactSelectVal":"1","SingleSelectVal":"1","MultiSelectVal":"1;3","AcceptsTerms":"on","CommentVal":""}

您的技能应该足够聪明,可以将message.text识别为json,然后使用form字段中的id来收集值。

请注意,Cortana在HOW自适应卡结果返回方面略有不同。其他渠道会在邮件中附加值,因此,如果您要支持多个渠道...

 if( session.message.text && session.channel === 'cortana' ) 
  { ... digest the json in the message ... }

 if( session.message.value ) 
  { ... digest the values attached to the message for non-cortana ... }

还请注意,您也可以将数据添加到操作中,这些数据可以通过有效负载发送

{
  "type": "Action.Submit",
  "title": "Submit",
  "data": {
    "id": "1234567890"
  }
},