如何向PromptDialog.Choice添加自定义有效负载

时间:2019-04-24 10:59:20

标签: botframework

我正在尝试向PromptDialog.Choice /或PromptDialog.Text添加自定义数据有效载荷,以指示我的bot客户端特殊活动。

我知道有一个字段可以将InputHint指定给IMessageActivity。 有没有一种方法可以将Inputhint /或自定义标签添加到PromptDialog流中?

1 个答案:

答案 0 :(得分:0)

您最好的选择是使用这样的东西:

var options = new PromptOptions()
{
    Prompt = MessageFactory.Text("Pick Me!"),
    Choices = new List<Choice>()
};
var channelData = new Dictionary<string, string>();
channelData["testKey"] = "testValue";
options.Choices.Add(new Choice()
{
    // Value must be set. There's a PR in place to fix this, but for now just leave blank
    Value = "",
    Action = new CardAction()
    {
        // PostBack will prevent the user from seeing "Actual Value" after they select it
        Type = ActionTypes.PostBack,
        Title = "DISPLAYED TEXT",
        Value = "ACTUAL VALUE",
    }
});
return await stepContext.PromptAsync(nameof(ChoicePrompt), options);

我在代码中留下的注释应该足以说明问题。

另一种解决方案可能是显示一组包含ChannelData的卡片,然后显示空白文本提示以等待用户的响应。我有a pretty in-depth answer来做这件事。您只需要添加一个ChannelData property,即可捕获“特殊活动”代码。