Можно ли использовать адаптивную карту в адаптивном диалоге по шаблону?
Я хотел бы вернуть адаптивную карточку через SendActivity в адаптивном диалоге.
Код для этого выглядит так:
new OnIntent("Help")
{
Actions = new List<Dialog>()
{
new SendActivity("${Help-Root-Dialog()}")
}
},
Но я хотел бы включить параметр в вызов для создания адаптивной карты. Скажем, имя пользователя (и, следовательно, персонализация сообщения для пользователя. Можно ли это сделать?
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
}
//...
- Отправьте параметр при вызове карты, как это сделано в промежуточном программном обеспечении AdaptorWithErrorHandler.
await turnContext.SendActivityAsync(ActivityFactory.FromObject( _templates.Evaluate("SomethingWentWrong", exception)));
Я использовал вариант 1, но, похоже, подходит вариант 2.