3

我想在自适应对话框中通过 SendActivity 返回自适应卡。

执行此操作的代码如下所示:

new OnIntent("Help")
{
    Actions = new List<Dialog>()
    {
        new SendActivity("${Help-Root-Dialog()}")
    }
},

但是,我想在调用中包含一个参数来创建自适应卡。假设一个用户名(因此向用户个性化消息。有没有办法做到这一点?

4

1 回答 1

0

找到了几种方法来做到这一点:

  1. 在对话中调用卡片之前使用 SetProperty
new SetProperty()
{
    Property = "conversation.gameCreateDate",
    Value = DateTime.Now.ToString()
},

new SendActivity("${PlayGameCard()}"),
//In .lg file:
# PlayGameCard
[Activity
    Attachments = ${json(AdaptiveCard.Definition())}
]

//...
{
    "type": "TextBlock",
    "spacing": "None",
    "text": "Created ${conversation.gameCreateDate}",
    "isSubtle": true,
    "wrap": true
}
//...
  1. 调用卡片时发送参数,就像在 AdaptorWithErrorHandler 中间件中所做的那样。
await turnContext.SendActivityAsync(ActivityFactory.FromObject( _templates.Evaluate("SomethingWentWrong", exception)));

我使用了选项1,但似乎是2。

于 2020-04-30T08:00:51.783 回答