Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取messenger中建议按钮的值_C#_Botframework_Facebook Messenger - Fatal编程技术网

C# 获取messenger中建议按钮的值

C# 获取messenger中建议按钮的值,c#,botframework,facebook-messenger,C#,Botframework,Facebook Messenger,我在Facebook messenger中遇到了一些关于建议按钮的问题。当我从用户那里得到响应时,我将返回Title字段,并且该值将丢失。这在机器人模拟器中可以正常工作,但在Facebook messenger中则不行。以下是创建按钮的代码: var reply = context.MakeMessage(); reply.Text = "What can i do for you?"; var suggests = new SuggestedAc

我在Facebook messenger中遇到了一些关于建议按钮的问题。当我从用户那里得到响应时,我将返回Title字段,并且该值将丢失。这在机器人模拟器中可以正常工作,但在Facebook messenger中则不行。以下是创建按钮的代码:

        var reply = context.MakeMessage();
        reply.Text = "What can i do for you?";
        var suggests = new SuggestedActions();
        var actions = new List<CardAction>();
        foreach (var button in utter.Buttons)
        {
            actions.Add(new CardAction
            {
                Title = button.Text,
                Type = ActionTypes.ImBack,
                Value = button.Payload,
                Text = button.Payload,
                DisplayText = button.Text                    
            });
        }

        suggests.Actions = actions;
        reply.SuggestedActions = suggests;
        return reply;
var reply=context.MakeMessage();
reply.Text=“我能为您做些什么?”;
var建议=新建议的行动();
var actions=新列表();
foreach(绝对按钮中的var按钮)
{
操作。添加(新卡片操作
{
Title=按钮文本,
Type=ActionTypes.ImBack,
值=按钮有效载荷,
Text=按钮。有效载荷,
DisplayText=按钮。文本
});
}
建议:行动=行动;
reply.SuggestedActions=建议;
回复;
当用户按下按钮时,我希望有效负载返回到msbf,但我只得到按钮标题。谁能告诉我这里发生了什么事吗

版本
我正在使用BotBuider SDK的版本
3.12.2.4

这似乎是BotBuider SDK中的一个bug。 添加

activity.Text=activity.GetChannelData()?.message?.quick_reply?.payload??活动.文本;
在messages controller.cs中解决此问题


github上此问题的解决方案:

您使用的是哪个版本的BotBuilder sdk?@EricDahlvang I使用BotBuilder版本更新了答案。请升级到最新版本version@EricDahlvang是的,问题仍然存在。我找到了一个解决方法,请参见下面的答案。
activity.Text = activity.GetChannelData<dynamic>()?.message?.quick_reply?.payload ?? activity.Text;