Можно ли использовать адаптивную карту в адаптивном диалоге по шаблону?

Я хотел бы вернуть адаптивную карточку через SendActivity в адаптивном диалоге.

Код для этого выглядит так:

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

Но я хотел бы включить параметр в вызов для создания адаптивной карты. Скажем, имя пользователя (и, следовательно, персонализация сообщения для пользователя. Можно ли это сделать?

1 ответ

Решение

Нашел несколько способов сделать это:

  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.

Другие вопросы по тегам